sql-server - 无法在带有 ODBC 13 驱动程序的 SQL Server 上使用 VB6 ADO 检索 varchar(max) 字段
问题描述
我们有一个使用 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 函数,但不太确定如何让它适用于我的场景,或者即使它是必要的。
解决方案
推荐阅读
- javascript - 以编程方式提交表单 React
- firebase - 每次热重新加载后都会加载多个图像?
- obd-ii - 使用 OBD II 获得准确的汽车油耗
- python - 计算每个数据框行中表情符号的数量
- python - 在 Pandas 中按一天中的时间对数据框进行分组
- spring-kafka - 关系数据库和 kafka 消费者同步
- javascript - 我正在尝试执行一个函数定义的对象属性作为对 addEventListener 的引用
- javascript - 如何将嵌套的 JSON 数据导入 JavaScript
- java - Hibernate Validator 和 apache bval - 要加载哪个验证器?
- angular - 为什么 pipe(take(1) 没有完成 RxJS 流