【问题标题】:How to handle text columns with ODBC Driver 13 for SQL Server如何使用 ODBC Driver 13 for SQL Server 处理文本列
【发布时间】:2017-11-30 11:49:00
【问题描述】:

以前我们一直在使用带有 Adaptive Server Enterprise 驱动程序的 sybase。 目前我们正在切换到 MSSQL,然后将使用 ODBC Driver 13 for SQL Server

在索引为i 的未绑定列上调用SQLGetData 时,我们不断收到Invalid Descriptor Index 错误,而最高绑定列的索引为i+n。根据SQLGetData doc,这是有道理的

另一方面,对我来说没有意义的是 SQLGetInfo 类型为 81(SQL_GETDATA_EXTENSIONS) 为两个驱动程序返回一个空字符串。我希望 sybase 能返回一些东西,表明它具有属性 SQL_GD_ANY_COLUMN

我的问题是: 有没有办法为 ODBC Driver 13 for SQL Server 提供SQL_GD_ANY_COLUMN 属性? 如果不是,那么应该如何处理不同长度的文本列(不应该用SQLBind绑定那些?)?

我对此很陌生,因此任何见解都值得赞赏:)

【问题讨论】:

  • 您使用的是哪种 Smalltalk 方言?
  • 我目前正在使用 VSE。
  • 好的。然后,我建议将问题发布到 VSE 列表:“Using Visual Smalltalk for Windows/Enterprise (VSWE-L@LISTSERV.DFN.DE)”.
  • 我们正在使用绑定,是的。对于 VARCHAR,我们有一个叫做 SQLPartitionableBuffer 的东西,我们会反复阅读它

标签: sql-server odbc sybase smalltalk


【解决方案1】:

您无法更改驱动程序的行为。我建议您为 text/varchar(max) 列重复调用 SQLGetData ODBC 函数

【讨论】:

  • 感谢您的回答。我们最终只是重做了大多数查询,以便文本字段在 Select 语句中最后结束。避免无效的描述符索引错误。
猜你喜欢
  • 1970-01-01
  • 2018-03-26
  • 2018-01-10
  • 1970-01-01
  • 2016-11-24
  • 1970-01-01
  • 2018-08-14
  • 1970-01-01
  • 2021-10-20
相关资源
最近更新 更多