【问题标题】:SQL Server error '80040e14' incorrect syntax on SQL Server 2012SQL Server 错误“80040e14”SQL Server 2012 上的语法不正确
【发布时间】:2016-10-20 12:21:16
【问题描述】:

我的任务是将带有 SQL Server 2005 数据库的 Classic ASP Web 应用程序从 Windows Server 2003(32 位)迁移到带有 SQL Server 2012 的 Windows Server 2012 R2。

代码很旧,我不想做任何代码更改以使其在上述环境中可用。

我已经实现了上述所有目标,但是当在某个页面上测试 Web 应用程序时,在给出报告生成命令的页面上,应用程序因错误而中断......

用于 SQL Server 的 Microsoft OLE DB 提供程序错误“80040e14”
“*”附近的语法不正确。
D:\WEBSITES\XXXXXXXXX\REPORTS../common.asp,第 84 行

下面是第84行代码:

rs.Open sql, cn, adOpenStatic, adLockReadOnly, adCmdText

奇怪的是,当我将 SQL Server 从 2012 更改为 SQL Server 2008 R2 时,应用程序正常工作并生成所需的报告并显示在浏览器中。

我还想提一下,这种代码/数据库组合在 Windows 2003(IIS6)/SQL Server 2005 上可以正常工作。

我尝试将 SQL Server 2012 的兼容模式更改为 SQL 2005 (90),但没有帮助。

我们将不胜感激。

【问题讨论】:

  • 实际执行的 SQL 语句是什么?
  • 是的,请在执行时显示 adCmdText 中的内容。
  • I have tried by changing the compatibility mode of SQL Server 2012 r2 to SQL 2005 (90) but that has not helped. 有不同的用途——当您在 Management Studio 中创建 SQL 脚本时,它将与特定版本的 SQL Server 兼容

标签: sql-server asp-classic sql-server-2008-r2


【解决方案1】:

我玩游戏迟到了,但我收到了相同的错误号,并且正在拔头发以确定原因。原来是我的列名之一“模块”必须是关键字。当我将模块名称封装为“[Module]”时,一切正常。因此,您可以检查以确定代码中的某个词现在是否被视为关键字。 (我认为可能是这种情况,因为较新的版本可能有更多的关键字。)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-27
    • 1970-01-01
    • 2011-10-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多