[Microsoft] [ODBC SQL Server驱动程序] [SQL Server]'='

时间:2017-08-25 13:25:57

标签: sql sql-server asp-classic

我已经开始在页面上收到错误,并且我正在努力找出原因。我已经在Stack Overflow上搜索了同样的错误消息,发现有些人也得到了它,但是我的解决方案与我的非常不同。这是我收到的错误消息:

  

Microsoft OLE DB Provider for ODBC Drivers错误“80040e14”

     

[Microsoft] [ODBC SQL Server驱动程序] [SQL Server]'='附近的语法不正确。

     

/test-page.asp,第97行

这与.asp页面上的这一行有关:

set rsMainContact=oConn.execute 
    ("SELECT * FROM tbl_individual WHERE individual_id="&iMainContact)

现在奇怪的是,该页面实际上是在提供正确的数据,它从该表中获取所需的所有数据。这就是为什么我不明白为什么会出现问题。

此外,当我使用MSSQL中的“SELECT * FROM tbl_individual WHERE individual_id =”& iMainContact“语句运行查询时,替换& iMainContact作为实际变量,它的工作非常正常。

有没有人知道为什么会出现这个错误?

如果您想知道各种变量的来源,那么这也是页面中的一些相关代码:

SET rsOrganisationPendingOrganic=Server.CreateObject("ADODB.RecordSet")
rsOrganisationPendingOrganic.CursorType=3
rsOrganisationPendingOrganic.Open sSQL, oConn
iOrganisationPendingOrganicCount=rsOrganisationPendingOrganic.RecordCount

iMainContact=rsOrganisationPendingOrganic("organisation_maincontact")

1 个答案:

答案 0 :(得分:0)

如果在错误发生之前运行以下代码,则您很可能没有iMainContact的值:

/_api/web/lists/getbytitle('<title>')/items?$expand=Folder,File 

你可以通过在执行失败的sql之前将sql写出到屏幕来证明这一点:

SET rsOrganisationPendingOrganic=Server.CreateObject("ADODB.RecordSet") 
rsOrganisationPendingOrganic.CursorType=3

rsOrganisationPendingOrganic.Open sSQL, oConn
iOrganisationPendingOrganicCount=rsOrganisationPendingOrganic.RecordCount

iMainContact=rsOrganisationPendingOrganic("organisation_maincontact")

我也同意使用lad2025 1000%,使用参数化查询来防范sql injection