- 论坛徽章:
- 0
|
esql C中怎么不能用EXEC SQL DEALLOCATE CURSOR cursor_name??
源代码如下: 请帮忙看看
int trans_offline()
{
EXEC SQL BEGIN DECLARE SECTION;
char card_no[21];
char agency_id[7];
char card_agency[7];
double amt;
char trans_type[5];
char app_type[3];
char merchantid[16];
char batchno[7];
char traceno[7];
char t_id[9];
char tmp_time[30];
EXEC SQL END DECLARE SECTION;
EXEC SQL DECLARE offline_cursor CURSOR FOR
SELECT ot_cardno, ot_cardagencyid, ot_transamount, ot_transtime, ot_transtype,
ot_apptype, ot_merchantid, ot_batchno, ot_traceno
FROM tb_tmpofflinetrans
WHERE ot_terminalid = :t_id;
EXEC SQL OPEN offline_cursor;
EXEC SQL BEGIN TRANSACTION;
for( ; ; )
{
memset(tmp_time, 0, sizeof(tmp_time));
EXEC SQL FETCH offline_cursor INTO :card_no, :card_agency, :amt, :tmp_time,
:trans_type, :app_type, :merchantid, :batchno, :traceno;
if ( sqlca.sqlcode == 100 )
{
EXEC SQL CLOSE offline_cursor;
EXEC SQL DEALLOCATE CURSOR offline_cursor; /*这个语句加上就出现编译错误*/
EXEC SQL COMMIT TRANSACTION;
return 0;
}
else if(sqlca.sqlcode == 0)
{
//......
}
else
{
EXEC SQL CLOSE offline_cursor;
EXEC SQL ROLLBACK TRANSACTION;
return -1;
}
}
} |
|