c語言解析sql語句 C語言中嵌入式SQL語句

2021-10-13 13:21:40 字數 1647 閱讀 7540

exec sql begin declare section;  /*主變數說明開始*/

char deptname[64];

char hsno[64];

char hsname[64];

char hs***[64];

int  hsage;

int newage;

long sqlcode;

exec sql end declare section;     /*主變數說明結束*/

exec sql include sqlca;               /*定義sql通訊區*/

int main(void)                           /*c語言主程式開始*/

int  count = 0;

char  yn;                              /*變數yn代表yes或no*/

printf("please choose the department name(cs/ma/is): ");

scanf("%s", deptname);                 /*為主變數deptname賦值*/

exec sql connect to demin user

sa;         /*連線資料庫test*/

exec sql declare sx cursor for   /*定義游標*/

select sno, sname, s***, sage   /*sx對應語句的執行結果*/

from student

where sdept = :deptname;

exec sql open sx;        /*開啟游標sx便指向查詢結果的第一行*/

for ( ; ; )                       /*用迴圈結構逐條處理結果集中的記錄*/

exec sql fetch sx into :hsno, :hsname, :hs***,:hsage;

/*推進游標,將當前資料放入主變數*/

if (sqlca->sqlcode != 0)     /* sqlcode != 0,表示操作不成功*/

break;                /*利用sqlca中的狀態資訊決定何時退出迴圈*/

if(count++ == 0)             /*如果是第一行的話,先打出行頭*/

printf("\n%-10s %-20s %-10s %-10s\n", "sno", "sname", "s***", "sage");

printf("%-10s %-20s %-10s %-10d\n", hsno, hsname, hs***, hsage);

/*列印查詢結果*/

printf("update age(y/n)?"); /*詢問使用者是否要更新該學生的年齡*/

do                 /*對當前游標指向的學生年齡進行更新*/

exec sql close sx;           /*關閉游標sx不再和查詢結果對應*/

exec sql commit work;                           /*提交更新*/

exec sql disconnect test;                  /*斷開資料庫連線*/

c語言解析sql語句 C語言中嵌入式SQL語句

實驗內容 掌握sql server 2000的預編譯程式nsqlprep.exe的使用 以課本例題1進行除錯 實驗步驟 一 資料庫環境配置 1 建立xuesheng資料庫,建立student表等 2 關閉sql server 2000服務管理器 3 將devtools資料夾拷貝到 c program...

c語言解析sql語句 C語言中嵌入式SQL語句

實驗內容 掌握sql server 2000的預編譯程式nsqlprep.exe的使用 以課本例題1進行除錯 實驗步驟 一 資料庫環境配置 1 建立xuesheng資料庫,建立student表等 2 關閉sql server 2000服務管理器 3 將devtools資料夾拷貝到 c program...

c語言解析sql語句 C語言中嵌入式SQL語句

實驗內容 掌握sql server 2000的預編譯程式nsqlprep.exe的使用 以課本例題1進行除錯 實驗步驟 一 資料庫環境配置 1 建立xuesheng資料庫,建立student表等 2 關閉sql server 2000服務管理器 3 將devtools資料夾拷貝到 c program...