在SELECT中拆分varbinary

时间:2009-01-27 12:00:21

标签: c++ sql sql-server tsql odbc

我的一个表格中有一个大的varbinary字段,我想部分下载以便在我的应用程序中显示下载进度指示器。

如何拆分SELECT查询中发送的数据?

由于

3 个答案:

答案 0 :(得分:1)

请参阅SqlDataReader.GetBytes和CommandBehavior SequentialAccess。

它允许您通过多次调用从varbinary(max)读取。然后,您可以显示通话之间的进度。

对于ODBC,请参阅ISequentialStreamhere as well),您也可以以块的形式阅读它。

答案 1 :(得分:1)

只需SQLGetData ODBC调用即可完成此操作。如果您提供的缓冲区大小小于总varbinary大小,它将填充缓冲区并返回SQL_SUCCESS_WITH_INFO和SQLSTATE 01004.如果再次调用它,它将返回下一个数据段。您只需重复,直到检索到所有数据。要以百分比的形式了解您的进度,您可以选择长度作为另一列。

请点击此处查看getting long data的大量提示。

答案 2 :(得分:0)

我在C ++应用程序中使用ODBC和Qt4。我想我需要在SELECT语句中拆分数据来实现这一点。

非常感谢。