在使用Tabular Data Stream
(TDS 7+)检索数据时,我遇到了检索blob(例如Image
类型)的麻烦。虽然记录包含3个图像(每个20+ KB大小),但行数据仅包含4096(textPtr为0000 00 00,LONG数据长度)每个图像的字节数(与最大包长度相同)。
我应该设置一些东西来检索带有行数据的大对象,还是可以找出剩下的一些数据并用TDS检索它?我有[MS-TDS].pdf
和FreeTDS
来源,但无法确定如何使用blob。
P.S。由于信誉点不足而Tabular-data-stream
被其他内容占用,我无法创建新的tds
代码。因此,我无法在标签中更具体,只有sql-server
。
答案 0 :(得分:0)
找到在Row Token
中接收完整blob的解决方案:在登录数据包fODBC
中将OptionFlags2
标志设置为ON。来自MS-TDS.pdf
fODBC:设置客户端是否为ODBC驱动程序。这导致服务器 将ANSI_DEFAULTS设置为ON,将IMPLICIT_TRANSACTIONS设置为OFF,TEXTSIZE设置为 0x7FFFFFFF(2GB)(TDS 7.2及更早版本),TEXTSIZE为无限 (在TDS 7.3中引入),并且ROWCOUNT为无限。