在使用 SQL 的 RPG/400 應用程式中定義 SQL 描述子區域
SQL 描述子區域有兩種類型。 其中一個是以 ALLOCATE DESCRIPTOR 陳述式定義。 另一個是使用 SQLDA 結構來定義。 在這個主題中,只會討論 SQLDA 表單。
下列陳述式可以使用 SQLDA:
- 執行 ...使用描述子 描述子名稱
- 提取 ...使用描述子 描述子名稱
- 開啟 ...使用描述子 描述子名稱
- 呼叫 ...使用描述子 描述子名稱
- DESCRIBE 陳述式名稱 INTO 描述子名稱
- DESCRIBE CURSOR cursor-name INTO descriptor-name
- 說明輸入 陳述式名稱 INTO 描述子名稱
- DESCRIBE PROCEDURE procedure-name INTO 描述子名稱
- DESCRIBE TABLE 主變數 INTO 描述子名稱
- PREPARE 陳述式名稱 INTO 描述子名稱
不同於 SQLCA ,程式中可以有多個 SQLDA ,且 SQLDA 可以有任何有效名稱。
動態 SQL 是一種進階程式設計技術。 使用動態 SQL ,您的程式可以開發 SQL 陳述式,然後在程式執行時執行 SQL 陳述式。 具有變數 SELECT 清單 (亦即,要作為查詢一部分傳回的資料清單) 且動態執行的 SELECT 陳述式需要 SQL 描述子區域 (SQLDA)。 這是因為您無法事先知道為了接收 SELECT 的結果而要配置的變數數目或類型。
因為 SQLDA 使用 RPG/400®不支援的指標變數,所以無法在 RPG/400 程式中指定 INCLUDE SQLDA 陳述式。 SQLDA 必須由 C、C++、COBOL、PL/I 或 ILE RPG 程式設定並傳遞至 RPG 程式,才能使用它。