无法在具有ODBC 13驱动程序的SQL Server上使用VB6 ADO检索varchar(max)字段

时间:2018-11-19 23:41:28

标签: sql-server vb6 odbc ado

我们有一个使用ADO的VB6应用程序,需要更新SQL Server ODBC驱动程序以处理TLS 1.2兼容性。我能够使用原始的{SQL Server}驱动程序查询varchar(max)字段,但是任何较新的ODBC驱动程序都不会返回varchar(max)字段(13、11,SQL Native Client 11、10等)。除varchar(max)外,其他所有字段类型都可以使用较新的驱动程序返回。

我将数据库连接字符串设置如下:

PROVIDER=MSDASQL;Driver={ODBC Driver 13 for SQL Server};Server=server;DATABASE=dbname;UID=user;PWD=password;DataTypeCompatibility=80;MARS Connection=True;

然后使用以下命令执行ADO记录集:

Set recordset1 = gsSQLConn.Execute(strSQL, recordsaffected, adCmdText)

SQL是

SELECT TABLE.NOTES AS [Value] From TABLE WHERE (((TABLE.NOTES) Is Not Null) AND ((TABLE.TABLE_ID)=#####))

其中#####是表的有效整数ID。

返回值显示为:

        2                                                      à                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              

,其类型为200(adVarChar)。

我对此一无所知,并且不确定为什么我无法让更新的ODBC驱动程序读取varchar(max)字段。我确实研究了SQLGetData函数,但不确定如何使它适用于我的方案,甚至是必要的。

0 个答案:

没有答案