SQL/CLI實際上是執(zhí)行SQL語言的一種聯(lián)編方式,它可以用來代替嵌入式動態(tài)SQL,不過兩者啟動SQL語句的方" />

国产成人精品无码青草_亚洲国产美女精品久久久久∴_欧美人与鲁交大毛片免费_国产果冻豆传媒麻婆精东

18143453325 在線咨詢 在線咨詢
18143453325 在線咨詢
所在位置: 首頁 > 營銷資訊 > 信息時代 > SQL/CLI(數(shù)據(jù)庫)

SQL/CLI(數(shù)據(jù)庫)

時間:2022-11-08 18:30:01 | 來源:信息時代

時間:2022-11-08 18:30:01 來源:信息時代

    SQL/CLI : 應用程序訪問數(shù)據(jù)庫時執(zhí)行SQL語句的調用級接口,該接口獨立地執(zhí)行SQL語句。
SQL/CLI實際上是執(zhí)行SQL語言的一種聯(lián)編方式,它可以用來代替嵌入式動態(tài)SQL,不過兩者啟動SQL語句的方式不同。SQL/CLI由一組例程組成,以分別實現(xiàn)與數(shù)據(jù)庫的連接、數(shù)據(jù)交換、斷開與數(shù)據(jù)庫的連接等功能。SQL/CLI標準規(guī)定了例程的實現(xiàn)方法。具體實現(xiàn)由第三方軟件開發(fā)商制作,例程的可執(zhí)行代碼一般存于動態(tài)鏈接庫(DLL)中,可被應用程序訪問數(shù)據(jù)庫時動態(tài)調用,應用程序調用它們就像調用其他系統(tǒng)服務一樣,如圖1所示。
例程的不同實現(xiàn)方式,構成不同的驅動程序driver),在應用程序訪問數(shù)據(jù)源時,由驅動程序管理器根據(jù)用戶指定的數(shù)據(jù)源選擇相應的驅動程序,以實現(xiàn)對不同數(shù)據(jù)源的訪問。
1. SQL/CLI的功能
SQL/CLI驅動程序要實現(xiàn)的功能包括:


圖1 使用SQL/CLI的應用程序原理


(1)分配資源和取消分配的資源。
(2)控制與SQL服務器的連接。
(3)用類似動態(tài)SQL的機制執(zhí)行SQL語句。
(4)游標與診斷功能。
(5)控制事務終止。
2. SQL/CLI驅動程序遵循的規(guī)則
每個SQL/CLI例程都支持一個被定義成語句文本的輸入字符串參數(shù),這個語句文本必須符合以下規(guī)定:
(1)遵循SQL標準中對“可準備語句”指定的格式、語法規(guī)則和訪問規(guī)則。
(2)不能是“提交語句”或“回滾語句”。
(3) 遵循 SQL external repository interface(SQL/ERI)服務器要求的SQL支持度的測量規(guī)則。
SQL/CLI支持國際字符集處理、滾動游標和動態(tài)SQL等功能,以便完全與SQL標準兼容。此外,SQL/CLI還增加了一些“簡練的”例程,以便與微軟的ODBC、早期的SQL訪問規(guī)范和X/Open規(guī)范兼容。需要說明的是,雖然在語法和語義上,SQL/CLI基本上與ODBC等價,但并不等于說SQL/CLI與ODBC用法完全相同。
由于實現(xiàn)技術方面的原因,一些基于SQL/CLI驅動程序的應用程序需作少量修改,才能移植到基于ODBC驅動程序的系統(tǒng)。
3. SQL/CLI例程的結構
SQL/CLI例程由一組函數(shù)即CLI函數(shù)組成,這些函數(shù)的功能、函數(shù)的說明(包括函數(shù)名、參數(shù)的個數(shù)、類型、順序以及返回值的類型)等內容已由標準規(guī)定好,下面分別介紹這些函數(shù)。
(1)連接階段的函數(shù):AlloEnv:分配SQL環(huán)境;AlloStmt: 分配SQL語句;AlloHandle: 分配SQL資源;AlloConnect: 分配SQL連接; Connect: 創(chuàng)建連接。
(2)數(shù)據(jù)交換階段的函數(shù):在數(shù)據(jù)交換階段,共需要用到四種類型的函數(shù)。①有關游標的函數(shù):SetCursorName: 設置游標名; GetCursorName: 獲取游標名;Fetch:推進游標并讀取數(shù)據(jù);ScrollFetch:在指定的行定位游標并讀取數(shù)據(jù): CloseCursor:關閉游標。②有關診斷的函數(shù): GetDiagField: 從診斷區(qū)得到信息。③有關動態(tài)SQL的函數(shù):SetDescField:在描述符區(qū)設置一個字段; GetDescField: 從描述符區(qū)獲取一個字段; CopyDesc: 復制描述符。④有關數(shù)據(jù)獲取的函數(shù): ExecDirect: 直接執(zhí)行語句;Prepare: 準備語句; Execute: 執(zhí)行所準備的語句。在數(shù)據(jù)獲取函數(shù)中,SQL語句以函數(shù)中的參數(shù)形式出現(xiàn)。此外,還包括執(zhí)行事務的函數(shù)。EndTran: 終止一個SQL事務。一般來說,一個數(shù)據(jù)獲取函數(shù)的執(zhí)行即表示一個新事務的開始,而用函數(shù)EndTran表示事務的結束。
(3)斷開連接階段的函數(shù): FreeStmt:取消分配的SQL語句;FreeHandle:釋放SQL資源;FreeEnv:取消分配的SQL環(huán)境; FreeConnect: 取消分配的SQL連接; DisConnect: 斷開連接。
4. SQL/CLI的工作過程
利用SQL/CLI進行編程需包括連接數(shù)據(jù)庫、與數(shù)據(jù)庫進行數(shù)據(jù)交換、斷開連接等步驟。SQL/CLI的工作過程主要包括三個階段:
(1)初始化環(huán)境變量:也即獲取環(huán)境句柄和連接句柄,以便連接數(shù)據(jù)庫,并進一步獲取語句句柄。
(2)準備數(shù)據(jù)接收的緩沖區(qū):再依次執(zhí)行準備好的SQL語句,將語句句柄和數(shù)據(jù)緩沖區(qū)進行綁定。
(3)釋放語句柄;與數(shù)據(jù)庫斷開連接,以及釋放連接句柄和環(huán)境句柄。
可以使用一些輔助手段來組織上述過程,如將以上過程生成DLL,然后將數(shù)據(jù)庫的初始化、綁定、釋放三個過程函數(shù)化,并在相應的地方調用函數(shù)以簡化編程過程和調試步驟,提高代碼的重用率。

74
73
25
news

版權所有? 億企邦 1997-2022 保留一切法律許可權利。

為了最佳展示效果,本站不支持IE9及以下版本的瀏覽器,建議您使用谷歌Chrome瀏覽器。 點擊下載Chrome瀏覽器
關閉