本文介紹了在PowerBuilder中使用動態SQL語句的4種方式。
PowerBuilder是目前最流行的數據庫開發工具之一。PowerBuilder提供了在程序代碼中加入嵌入式SQL語句的功能來支持對數據庫的訪問。但這種嵌入式SQL語句只能支持一些固定的標準的SQL語句,即在進行程序代碼編譯處理時這些SQL語句必須是確定的,例如:對哪張表哪幾個字段進行操作在程序代碼中是固定寫明的,另外這種方式也不能執行像Creat Table,Creat Database等這些數據庫定義的語句(DDL)。
因此這種嵌入式SQL語句在實際應用中有一定的局限性。為克服這種方式的局限性,可以使用PowerBuilder提供的動態SQL語句,這種對數據庫訪問的方式可以完成嵌入式SQL語句無法實現的功能。如建庫、建表這一類的數據庫定義語句(DDL);其次,由于動態SQL語句允許在執行時才確定到底要執行怎樣的SQL語句,因此使用動態SQL語句可以使程序實現參數化設計,具有很大的靈活性和通用性。
一、動態SQL語句的應用分析 PowerBuilder提供了四種格式的動態SQL語句,每種格式都有自己不同的特點和作用。下面我們對各種格式的具體使用方法分別加以說明。
(一)第一種格式
當執行沒有輸入參數并且沒有返回結果集的SQL語句時可以使用這種格式,這種格式使用比較簡單,其實現的操作也比較少。
(1)語法
EXECUTE IMMEDIATE SQLStatement{USING TransactionObject};
其中SQLStatement是要執行的SQL語句,可以直接用引號將要執行的SQL引起來用,或者用字符串變量的形式提供SQL語句。通過使用字符串變量可以在具體執行的時候才指定要執行什么樣的SQL語句。TransactionObject是用戶所使用的事務對象,缺省為SQLCA。
(2)應用實例
①建立一張數據庫表(base),SQL語句的表述用引號引起來直接使用。
EXECUTE IMMEDIATE‘CREATE TABLE base(code char(6),name char(30))’USING SQLCA;
②執行對數據庫記錄的操作,在表base中插入一條記錄,SQL語句通過字符串變量傳遞執行語句。
STRING lsSQL
LsSQL=”INSERT INTO TABLE base VALUES(’320201’,’市中區支行’)”
EXECUTE IMMEDIATE:lsSQL;
新聞熱點
疑難解答