/*
*功能:proc的游标操作
*源文件:cursor.pc
*/
#include<stdio.h>
#include<stdlib.h>
#include<unistd.h>
EXEC SQL INCLUDE SQLCA;
/*#define SQLCA_NONE
static struct sqlca sqlca;
*/
int main()
{
EXEC SQL BEGIN DECLARE SECTION;
int id;
char name[41];
char connString[] = "delp/delp@81db";
char sql[] = "select collect_id, collect_name from fm_collect_tasks";
EXEC SQL END DECLARE SECTION;
EXEC SQL CONNECT :connString;
if(sqlca.sqlcode != 0)
{
perror("Connect database error!");
exit(1);
}
EXEC SQL PREPARE S_DEVICE from :sql;
EXEC SQL DECLARE C_DEVICE CURSOR FOR S_DEVICE;
EXEC SQL OPEN C_DEVICE;
EXEC SQL WHENEVER NOTFOUND DO break;
while(true)
{
EXEC SQL FETCH C_DEVICE INTO
:id,
:name;
printf("collect_id=%d, collect_name=%s/n", id, name);
}
EXEC SQL CLOSE C_DEVICE;
EXEC SQL WHENEVER NOTFOUND continue;
//关闭数据库链接
EXEC SQL COMMIT WORK RELEASE;
return 0;
}