在 PowerBuilder 當中提供有 4 個專門用來處理 E Mail 的系統物件,其功能如下:
MailSessioin:負責登入及建立 MAPI 的連線。
MailMessage:是system structure,屬性包含了 eMail 的相關資訊。
MailRecipient:是system structure,屬性包含了相關人員資訊 ( From、To、CC、BCC )。
MailFileDescription:是system structure,屬性包含了附件的相關資訊。
全形與半形應該只會發生在數字及大小寫英文字上
1語法
PREPARE DynamicStagingArea FROM SQLStatement{USING TransactionObject};
DESCRIB DynamicStagingArea INTO DynamicDescriptionObject;
DECLARE cursor DYNAMIC CURSOR FOR DynamicDescriptionObject;
OPEN DYNAMIC cursor USING DESCRIPTOR DynamicDescriptionObject;
FETCH cursor USING DESCRIPTOR DynamicDescriptionObject;
CLOSE cursor;
其中:DynamicDescriptionObject是PowerBuilder提供的一個資料類型,在PowerBuilder中提供了一個DynamicDescriptionObject類型的全局資料類型SQLDA,用來存放動態SQL語句的輸入輸出參數。
1語法
DECLARE cursor DYNAMIC CURSOR FOR DynamicStagingArea;
PREPARE DynamicStagingArea FROM SQLStatement{USING TransactionObject};
OPEN DYNAMIC cursor {USING Parameterlist};
FETCH cursor INTO VariableList;
CLOSE cursor;
2應用實例
將表base中的code欄位中間兩位為”01”的所有記錄讀取出來並分別進行相應處理。
STRING lsSQL,lsCode,lsName,lsFilter
LsFilter=”01”
LsSQL=”SELECT code,name FROM base WHERE substring(code,3,2)=?”
DECLARE cursor_base DYNAMIC CURSOR FOR SQLSA;
PREPARE SQLSA FROM:lsSQL;
OPEN DYNAMIC cursor_base USING:lsFilter;
FETCH cursor_base INTO:lsCode,:lsName;
DO WHILE SQLCA.SQLCODE=0
.
∥對滿足條件的記錄根據要求分別進行處理
.
FETCH cursor_base INTO:lsCode,:lsName;
LOOP
CLOSE cursor_base;
1語法
PREPARE DynamicStagingArea FROM SQLStatement{USING TransactionObject};
EXECUTE DynamicstagingArea{USING Parameterlist};
其中:DynamicstagingArea是PowerBuilder提供的一種資料類型。PowerBuilder本身提供了一個名字為SQLSA的DynamicstagingArea類型的總體變數,用於保存要執行的動態SQL語句資訊。
2應用實例
刪除base表中的滿足一定條件的記錄。
STRING lsCode
lsCode=”320101”
PREPARE SQLSA FROM“DELETE base WHERE code=?”;
EXECUTE SQLSA USING:lsCode;
其中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;