程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> SqlServer數據庫 >> 關於SqlServer >> SQL循序漸進(24)嵌入SQL

SQL循序漸進(24)嵌入SQL

編輯:關於SqlServer

嵌入SQL

為了更好的理解嵌入SQL,本節利用一個具體例子來說明。嵌入SQL允許程序連接數據庫並且包括SQL代碼到程序中,這樣在程序中就可以對數據庫進行使用、操作以及處理數據等等。以下是用C語言編寫的使用嵌入SQL的例程,它將打印一個報告;這個程序必須在普通的編譯之前先預編譯SQL語句。嵌入SQL對於不同系統是不一樣的,所以在不同的系統中對以下的程序稍作修改,特別是變量的聲明以及過程記錄等。在嵌入SQL時,考慮網絡、數據庫管理系統、操作系統是相當重要的。

以下是詳細的代碼:

#include

/* 以下這部分是聲明主機變量,它將使用於程序中*/

EXEC SQL BEGIN DECLARE SECTION;

int BuyerID;

char FirstName[100], LastName[100], Item[100];

EXEC SQL END DECLARE SECTION;


/* 以下包括SQLCA變量,它可以用來進行錯誤檢查 */

EXEC SQL INCLUDE SQLCA;

main() {

/* 以下連接數據庫*/

EXEC SQL CONNECT UserID/PassWord;

/* 以下是連接數據庫並檢查是否有錯誤產生T */ if(sqlca.sqlcode) {

printf(Printer, "Error connecting to database server.\n");

exit();

}

printf("Connected to database server.\n");

/* 下面聲明一個 "Cursor"。它將在查詢結果多於一行的時候使用*/

EXEC SQL DECLARE ItemCursor CURSOR FOR

SELECT ITEM, BUYERID

FROM ANTIQUES

ORDER BY ITEM;

EXEC SQL OPEN ItemCursor;

/* 你可以在這裡還可以加入另外一些錯誤檢查的內容,這裡就省略了*/

/* 當這個CURSOR沒有數據, sqlcode將被產生以允許我們退出循環。這裡注意,為了簡單起見,我們使程序遇到錯誤的時候就退出任何的sqlcode。*/

EXEC SQL FETCH ItemCursor INTO :Item, :BuyerID;

while(!sqlca.sqlcode) {

EXEC SQL UPDATE ANTIQUES

SET PRICE = PRICE + 5

WHERE ITEM = :Item AND BUYERID = :BuyerID;

EXEC SQL SELECT OWNERFIRSTNAME, OWNERLASTNAME

INTO :FirstName, :LastName

FROM ANTIQUEOWNERS

WHERE BUYERID = :BuyerID;

printf("%25s %25s %25s", FirstName, LastName, Item);


EXEC SQL FETCH ItemCursor INTO :Item, :BuyerID;

}

/* 關閉CURSOR,提交變化並退出程序。*/

EXEC SQL CLOSE DataCursor;

EXEC SQL COMMIT RELEASE;

exit();<

  1. 上一頁:
  2. 下一頁: