【问题标题】:empty recordset values - sql server 2017空记录集值 - sql server 2017
【发布时间】:2020-02-05 13:53:21
【问题描述】:

我总是在我的代码中使用这个连接字符串来连接到 sql server:

"Driver={SQL Server};Server=SERVER_ADDRESS;Database=DBNAME;User Id=MYUSER;Password=******;"

在一个新网站中,当我在真实服务器上部署项目时,我注意到由于 sql server 版本,我必须使用新的连接字符串:

"Driver={ODBC Driver 17 for SQL Server};Server=SERVER_ADDRESS;Database=DBNAME;User Id=MYUSER;Password=*****;"

连接正常,网站正常工作,但记录集中的所有值都是空的! 我有 5 个菜单,因为数据库中有 5 条记录,但所有菜单都显示空文本! 事实上,所有文本都是空的,但数据库中有文本记录(当我检查 SSMS 时)。我需要在我的代码或连接字符串中添加一些新内容吗?

这是我从数据库中获取数据的方式:

Set objcon = Server.CreateObject("ADODB.Connection")
objcon.connectionString="Driver={ODBC Driver 17 for SQL Server};Server=SERVER_ADDRESS;Database=DBNAME;User Id=MYUSER;Password=*****;"
objcon.Open
Set rs= Server.CreateObject("ADODB.RecordSet")
rs.CursorType = 2
rs.open "select * from  menu",objcon
while not rs.eof
  Response.Write rs("title")   'I get 5 empty texts here as I have 5 record in database
rs.movenext
wend
rs.close

【问题讨论】:

  • 没有区别。我有很多字段,例如单独选择的网站标题,但它也是空的! @Flakes
  • 我试过 rs("title").value 但没有变化。 @Gert-Jan
  • 对于 ADO 经典,我建议您使用 OLE DB 而不是 ODBC。如果 MSOLEDBSQL 不起作用,您可以尝试 the latest MSOLEDBSQL driver 或 Windows 附带的向后兼容的 SQLOLEDB 提供程序。
  • 这些字段是否有可能是 NVARCHAR(MAX)?
  • 这能回答你的问题吗? Switching from sqloledb to odbc driver 13 for SQL Server(你的一个@DanGuzman)

标签: sql-server asp-classic connection-string sql-server-2017


【解决方案1】:

最好将 OLE DB 与 ADO 经典一起使用。 ADO 本身是一个基于 COM 的 API,并在 ODBC 调用级接口之上使用 MSDASQL(Microsoft OLE DB Provider for ODBC 驱动程序),添加了一个额外的 API 层。

Windows 附带 SQLOLEDB(Microsoft OLE DB Provider for SQL Server)以实现向后兼容性。此驱动程序旨在仅用于 ADO 经典等遗留应用程序 API。 ADO classic 永远停留在 SQL 2000 世界中,并且缺少过去 20 年中引入的较新 SQL Server 数据类型的数据类型映射。最好同时指定DataTypeCompatibility=80 连接字符串关键字以避免意外。

您还可以使用MSOLEDBSQL driver(适用于 SQL Server 的 Microsoft OLE DB 驱动程序),它与所有现代 SQL Server 驱动程序一样单独下载。但是,SQLOLEDB 和 MSOLEDBSQL 之间存在behavior differences,可能需要额外的应用程序测试。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多