#define EXTERN
#include "btpcomm.h"
#include "btpcmmcr.h"
#include "sqlenv.h"
main()
{
EXEC SQL INCLUDE SQLCA;
EXEC SQL BEGIN DECLARE SECTION ;
char txnbrh[12+1];
char txndt[10+1];
long txncnt;
EXEC SQL END DECLARE SECTION;
EXEC SQL update gcdgbnk set devlogrrn=0 where 1=1;
if ((sqlca.sqlcode != 0 ) && (sqlca.sqlcode != 100))
{
sprintf( cGlbWk, "update gcdgbnk err %d", sqlca.sqlcode );
BtpApDisp( cPrgID, cGlbWk );
BtpBatReturn(BATPROCDRUNERR, "數據庫操作失敗");
return(-1);
}
EXEC SQL INSERT INTO nmgtact SELECT brhid, :txndt, count(*), sum(txnamt)
FROM gctact
WHERE txndate = :txndt
AND mchtype = '6050'
AND revcd = '0'
GROUP BY brhid;
if ((sqlca.sqlcode != 0 ) && (sqlca.sqlcode != 100))
{
sprintf( cGlbWk, "insert into nmgtact err %d", sqlca.sqlcode );
BtpApDisp( cPrgID, cGlbWk );
BtpBatReturn(BATPROCDRUNERR, "數據庫操作失敗");
return(-1);
}
BtpBatReturn(BATPROCDRUNOK, "");
return;
}
靜態嵌入SQL語句的應用程序:
1)include語句定義并描敘了SQLCA的結構。SQLCA用于應用程序和數據庫之間的通訊,其中SQLCODE返回SQL語句執行后的結果狀態。
2)在BEGIN DECLARE SECTION和END DECLARE SECTION之間定義了宿主變量。宿主變量可被SQL語句引用,也可以被C語言語句引用。它用于將程序中的數據通過SQL語句傳給數據庫管理器,或從數據庫管理器接收查詢的結果。在SQL語句中,主變量前均有“:”標志以示區別
3)在gctact中選擇brhid,插入nmgtact表;