首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ODBC ()异步

ODBC ()异步
EN

Database Administration用户
提问于 2018-02-19 12:15:28
回答 1查看 97关注 0票数 0

当数据可用时,我想填充一个网格。

如果在中运行一个非常大的sql查询,则结果窗口将在行准备就绪时开始填充它们(实际上我想模仿这一点),但是在运行SQlExecDirect()时,必须等待所有行都计算完毕。

下面的代码是Microsoft关于异步执行SQLExecDirect()的示例

代码语言:javascript
复制
SQLHSTMT  hstmt1;  
SQLRETURN rc;  

// Specify that the statement is to be executed asynchronously.  
SQLSetStmtAttr(hstmt1, SQL_ATTR_ASYNC_ENABLE, SQL_ASYNC_ENABLE_ON, 0);  

// Execute a SELECT statement asynchronously.  
while ((rc=SQLExecDirect(hstmt1,"SELECT * FROM Orders",SQL_NTS))==SQL_STILL_EXECUTING) {  
   // While the statement is still executing, do something else.  
   // Do not use hstmt1, because it is being used asynchronously.  
}  

// When the statement has finished executing, retrieve the results. 

有没有人知道是否有可能或如何异步调用SQLFetch()并在其可用时检索每一行?

EN

回答 1

Database Administration用户

发布于 2018-02-19 13:57:31

我不认为异步执行会实现您想要的结果。如果指定了快速转发ODBC游标类型,Server将在结果可用时将结果返回给客户端。

另外,在查询仍在运行时,在GUI界面中显示部分结果可能需要特殊的编程技术。这并不是真正的数据库问题,所以如果您有更多的问题,StackOverflow将是一个更好的论坛。

票数 0
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/198255

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档