文章目錄
- 2個核心問題
- 識別SQL語句
- 主語言和SQL通信
- 完整導圖
2個核心問題
SQL語句嵌入高級語言需要解決的2個核心問題是:如何識別嵌入語句?如何讓主語言(比如C,C++語言)和SQL通信?
識別SQL語句
為了識別主語言中嵌入的SQL語句,會在SQL語句前加EXEC SQL,結尾添加什么,與SQL嵌入的主語言有關。如果嵌入PL/1或者C語言,結尾用’;'。如果嵌入COBOL語言,結尾用END-EXEC。示例中是在C語言中嵌入SQL。
主語言和SQL通信
主語言與SQL通信有3種方式
- SQL通信區:向主語言傳遞SQL語句執行狀態信息,使主語言根據此信息控制程序流程。
- 主變量:也叫共享變量,主語言通過主變量向SQL提供參數,主變量前加’:',用于和SQL的屬性名區分。如例子中的given_sno, Mname, Mage, Msex都是主變量。
- 游標:由于SQL語言是面向集合的,SQL的一條語句就會產生多條記錄,而主語言是面向記錄的,一組主變量只能存放一條記錄。通過游標指針,可以決定獲取哪條記錄。