执行语句和操纵结果集的 ODBC 函数使用游标执行它们的任务。应用程序每次执行 SQLExecute 或 SQLExecDirect 函数时,都会隐式打开游标。
如果游标在结果集中只正向移动而不更新结果集,对于这种应用情况,游标行为相对比较简单。缺省情况下,ODBC 应用程序会请求此行为。ODBC 定义一个只读的只进游标,SQL Anywhere 针对这种情况提供了已优化性能的游标。
有关只进游标的简单示例,请参见数据检索。
如果游标需要在结果集中向前和向后双向滚动(例如在很多图形用户界面应用程序中),对于这种应用情况,游标行为将会更加复杂。当应用程序返回到一个由某种别的应用程序更新的行时,它会怎样?ODBC 定义了多种可滚动游标,从而使您可以内置适合您的应用程序的行为。SQL Anywhere 提供了一整套游标,可以满足各种 ODBC 可滚动游标类型的要求。
通过调用定义语句属性的 SQLSetStmtAttr 函数,您可以设置所需的 ODBC 游标特性。您必须先调用 SQLSetStmtAttr,然后才能执行创建结果集的语句。
您可以使用 SQLSetStmtAttr 来设置很多游标特性。确定 SQL Anywhere 提供的游标类型的特性包括以下几种:
SQL_ATTR_CURSOR_SCROLLABLE 对于可滚动游标,设置为 SQL_SCROLLABLE;对于只进游标,设置为 SQL_NONSCROLLABLE。SQL_NONSCROLLABLE 是缺省设置。
SQL_ATTR_CONCURRENCY 设置为下列值之一:
SQL_CONCUR_READ_ONLY 不允许更新。SQL_CONCUR_READ_ONLY 是缺省设置。
SQL_CONCUR_LOCK 使用足以确保该行能够得到更新的最低锁定级别。
SQL_CONCUR_ROWVER 使用优化的并发控制,比较数据行的版本(例如,SQLBase ROWID 或 Sybase TIMESTAMP)。
SQL_CONCUR_VALUES 使用优化的并发控制,比较值。
有关详细信息,请参见 Microsoft 的ODBC API Reference中的 SQLSetStmtAttr,网址为 http://msdn.microsoft.com/zh-cn/library/ms712631.aspx。
![]() |
使用DocCommentXchange讨论此页。
|
版权 © 2013, SAP 股份公司或其关联公司. - SAP Sybase SQL Anywhere 16.0 |