編程環境下的SQL是如何編譯和執行的

編程環境下的SQL也成嵌入式SQL(Embedded SQL, ESQL),是一種將SQL語句直接寫入C、C++、JAVA等編程語言中的使用方式,從而讓應用程序擁有了訪問數據庫、操作數據的能力。這些嵌入SQL的語言稱爲宿主語言。

爲提供對嵌入式SQL的支持,數據庫廠商需要提供DBMS和一些工具,並且在技術上必須解決以下4個問題:

  1. 宿主語言的編譯器不可能識別和接受SQL語言,所以需要解決如何將宿主語言源代碼中的SQL編譯成可執行碼;
  2. 宿主語言的應用程序如何與DBMS之間傳遞數據和消息;
  3. 如何把對數據的查詢結果逐次賦值給宿主語言程序中的變量,以供其處理;
  4. 有時,數據庫的數據類型與宿主語言的數據類型不完全對應或等價,如何解決必要的數據類型轉換問題;

爲了解決以上問題,數據庫廠商採用兩種方法處理:一種是預編譯;另一種是修改和擴充宿主語言,使之能處理SQL語句。目前採用較多的是預編譯的方法。數據庫廠商需要提供一個嵌入式SQL的預編譯器,對源程序進行掃描,識別出SQL語句,把它們轉換成主語言調用語句,以使宿主語言編譯程序能識別它,最後由主語言的編譯程序將整個源程序編譯成目標碼。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章