【问题标题】:Split a varbinary in a SELECT在 SELECT 中拆分 varbinary
【发布时间】:2009-01-27 12:00:20
【问题描述】:

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

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

谢谢

【问题讨论】:

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


    【解决方案1】:

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

    请参阅此处以获取有关getting long data 的大量提示。

    【讨论】:

      【解决方案2】:

      请参阅SqlDataReader.GetBytes 和 CommandBehavior SequentialAccess。

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

      对于 ODBC,请参阅ISequentialStream (here as well),您也可以分块阅读。

      【讨论】:

        【解决方案3】:

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

        还是谢谢。

        【讨论】:

          猜你喜欢
          • 2018-08-31
          • 1970-01-01
          • 2011-11-23
          • 1970-01-01
          • 2014-06-13
          • 2019-01-28
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多