gpt4 book ai didi

vbscript - OLEDB、ODBC、Ntext 和 Nvarchar(max)

转载 作者:行者123 更新时间:2023-12-04 16:06:48 24 4
gpt4 key购买 nike

我知道微软在 2011 年决定弃用 OLE DB,并且除了 SQL Native Client V11 之外不会出现新的驱动程序或维护。将来您应该使用基于 ODBC 的驱动程序 - http://weblogs.sqlteam.com/dang/archive/2011/09/04/rip-ole-db.aspx

最新的 ODBC 驱动程序是 2016 年 7 月 25 日发布的“Microsoft ODBC Driver 13 for SQL Server” - https://www.microsoft.com/en-us/download/details.aspx?id=50420

来自 Native Client V9、10、11 和 Microsoft ODBC Driver SQL Server V11 和 13 的 ODBC 驱动程序都在与 SQL 服务器交互的经典 ASP 代码中工作(我使用的是 SQL 2012),除了一个问题 - nText 和 Nvarchar(max)。

他们只是返回空白 - 我已经看到解决方案说你应该先读入一个局部变量而不是直接寻址记录集,例如varStr=rs("LargeText"),但这对我不起作用。还有其他提到使用 get chunk 等。

但是我很高兴使用 Native Client V9 (Provider=SQLNCLI),它可以完美地处理这些数据类型。

所以,我的问题是:

有没有办法让 ODBC 驱动程序使用 nText/Nvarchar(max) 数据类型?

在 OLEDB 上使用 ODBC 有什么好处吗?

我是否必须在某个阶段升级到 ODBC 以便将来连接到 SQL 服务器,即 SQL 2014/2016?

换句话说,我可以继续使用 OLEDB 吗?

好的,Lankymart - 我会使用这样的东西:

Set oConn = Server.CreateObject("ADODB.Connection")
oConn.Open "Driver={SQL Server Native Client 11.0};Server=*Yourserver*;Database=*YourDatabase*;User ID=*YourUserid*;Password=*YourPassword*;"
'oConn.Open "Provider=SQLNCLI11;Server=*YourServer*; Database=*YourDatabase*;User ID=*YourUserID*;Password=*YourPassword*;"
set view=oConn.Execute("SELECT [PText] FROM [TextTest]")
ttext=view("PText")
response.write(ttext)
view.Close
set view = Nothing
oConn.Close
set oConn = Nothing

其中 [PText] 是 SQL 中的 NVARCHAR(Max) 字段。这在使用 native 客户端 ODBC ({SQL Server Native Client 11.0}) 时不起作用,但可以使用 OLE DB (SQLNCLI11)。

最佳答案

您是否尝试使用 driver={SQL Server};... ?它对我有用,但有一个问题。您需要读入一个局部变量,因为如果您再次尝试使用它,它将返回 null。

请参阅下面的代码:

Print rs!varcharmaxVariable 'Returns ok
Print rs!varcharmaxVariable 'Returns null
...

关于vbscript - OLEDB、ODBC、Ntext 和 Nvarchar(max),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38608879/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com