我的一个表格中有一个大的varbinary字段,我想部分下载以便在我的应用程序中显示下载进度指示器。
如何拆分SELECT查询中发送的数据?
由于
答案 0 :(得分:1)
请参阅SqlDataReader.GetBytes和CommandBehavior SequentialAccess。
它允许您通过多次调用从varbinary(max)读取。然后,您可以显示通话之间的进度。
对于ODBC,请参阅ISequentialStream(here as well),您也可以以块的形式阅读它。
答案 1 :(得分:1)
只需SQLGetData ODBC调用即可完成此操作。如果您提供的缓冲区大小小于总varbinary大小,它将填充缓冲区并返回SQL_SUCCESS_WITH_INFO和SQLSTATE 01004.如果再次调用它,它将返回下一个数据段。您只需重复,直到检索到所有数据。要以百分比的形式了解您的进度,您可以选择长度作为另一列。
请点击此处查看getting long data的大量提示。
答案 2 :(得分:0)
我在C ++应用程序中使用ODBC和Qt4。我想我需要在SELECT语句中拆分数据来实现这一点。
非常感谢。