游标用于从其结果集中具有多个行的查询中检索行。游标是 SQL 查询的句柄或标识符,也是结果集中的一个位置。
使用 DECLARE CURSOR 语句声明特定 SELECT 语句的游标。
使用 OPEN 语句打开游标。
使用 FETCH 语句一次一行地从游标中检索结果。
读取行,直到返回 [未找到行
] 警告。
在 SQLCA 结构中返回错误和警告。
使用 CLOSE 语句关闭游标。
缺省情况下,在事务(COMMIT 或 ROLLBACK 上)的结尾会自动关闭游标。用 WITH HOLD 子句打开的游标对于后续事务保持打开状态,直到它们被显式关闭。
以下是游标用法的简单示例:
void print_employees( void ) { EXEC SQL BEGIN DECLARE SECTION; char name[50]; char sex; char birthdate[15]; a_sql_len ind_birthdate; EXEC SQL END DECLARE SECTION; EXEC SQL DECLARE C1 CURSOR FOR SELECT GivenName || ' ' || Surname, Sex, BirthDate FROM Employees; EXEC SQL OPEN C1; for( ;; ) { EXEC SQL FETCH C1 INTO :name, :sex, :birthdate:ind_birthdate; if( SQLCODE == SQLE_NOTFOUND ) { break; } else if( SQLCODE < 0 ) { break; } if( ind_birthdate < 0 ) { strcpy( birthdate, "UNKNOWN" ); } printf( "Name: %s Sex: %c Birthdate: %s.n", name, sex, birthdate ); } EXEC SQL CLOSE C1; } |
![]() |
使用DocCommentXchange讨论此页。
|
版权 © 2012, iAnywhere Solutions, Inc. - SQL Anywhere 12.0.1 |