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