Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/delphi/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
查询包含一个varbinary(blob)字段的表时出现SQL错误消息_Sql_Delphi_Blob_Varbinary - Fatal编程技术网

查询包含一个varbinary(blob)字段的表时出现SQL错误消息

查询包含一个varbinary(blob)字段的表时出现SQL错误消息,sql,delphi,blob,varbinary,Sql,Delphi,Blob,Varbinary,我们正在使用Delphi XE3以及TSQLDataSet和TClientDataset将表从SQL server 2012读入内存 该表包含各种字段,其中一个是blob“varbinary(max)”,我们在其中存储文本文件中的内容 我的问题是,当我们打开ClientDataset时,会收到一条错误消息,说“连接正忙于处理另一个命令的结果”。 commandtext是一个简单的“select*fromtablename” 只有当表中有多个项目时才会发生这种情况。只有当blob字段(NULL)中

我们正在使用Delphi XE3以及TSQLDataSet和TClientDataset将表从SQL server 2012读入内存

该表包含各种字段,其中一个是blob“varbinary(max)”,我们在其中存储文本文件中的内容

我的问题是,当我们打开ClientDataset时,会收到一条错误消息,说“连接正忙于处理另一个命令的结果”。 commandtext是一个简单的“select*fromtablename”

只有当表中有多个项目时才会发生这种情况。只有当blob字段(NULL)中有数据时,才会发生这种情况

如果我们在表中添加第二个varbinary字段,一切都会正常工作。第二个字段不必包含任何数据

这快把我逼疯了,请帮帮我


编辑:作为一种解决方法,我们只是在表中添加了一个“虚拟”varbinary字段。由于这种奇怪的行为,我们得出结论,这一定是TClientDataset组件中的错误。尝试在旧版本的delphi(XE2 SP3)中执行相同的操作,结果相同

poFetchBlobOnDemand是ProviderFlags的一部分吗?如果直接打开SQLDataSet会发生什么?如果使用TSQLQuery会发生什么情况?poFetchBlobOnDemand在提供程序组件上未选中。组件上的所有设置都是您在将它们添加到delphi表单时获得的默认设置。如果我在SQLDataset上打开,我将不会得到错误,但随后我将无法访问ClientDataset上的数据,因为我收到错误消息,无法访问“关闭的数据集”。我没有尝试过TSQLQuery,因为这不是我们的选择。我们需要在网格中显示ClientDataset中的数据,并且需要能够编辑它的数据。此外,blob字段不必是ClientDataset上的字段之一,否则会发生错误。我添加tables主键作为ClientDataset上的唯一字段就足够了。