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

2021-10-12 14:21:27 字數 2771 閱讀 2206

實驗內容:

掌握sql server 2000的預編譯程式nsqlprep.exe的使用(以課本例題1進行除錯);

實驗步驟:

一、資料庫環境配置

1、建立xuesheng資料庫,建立student表等;

2、關閉sql server 2000服務管理器;

3、將devtools資料夾拷貝到:c:/program files/microsoft sql server

4、將binn資料夾拷貝到:c:/program files/microsoft sql server/mssql

5、啟動伺服器;

二、vc++6.0編輯器配置(初始化vc++環境)

1.工具—>選擇—>目錄—>include files

新增: c:/program files/microsoft sql server/devtools/include

並設為第一項

2.選擇library files

新增:c:/program files/microsoft sql server/devtools/x86lib

並設為第一項

三、寫程式,預編譯,最後在vc++中編譯、執行

exec.sqc檔案如下:

#include

#include

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;                  /*斷開資料庫連線*/

2、使用ms-dos進行預編譯:

1)進到binn檔案下:cdc:/program files/microsoft sql server/mssql/binn

2)呼叫預編譯程式nsqlprep.exe程式:nsqlprep exec

成功編譯完成結果:

見附件1

3、使用vc++進行編譯,見附件2

4、新增庫檔案:工程—>設定—>link—>物件/庫模組

輸入sqlakw32.lib caw32.lib兩個檔名。附件3

注意,兩個檔案之間用空格分開。

5、將動態鏈結庫sqlakw32.dll,sqlaiw32.dll檔案拷貝到作業系統目錄下的子目錄c:/windows/system32中

6、連線:附件4

7、執行:附件5

附件1:

附件2(vc編譯exec.c)

附件3(配置新增庫檔案)

附件4(連線)

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

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 ...

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...