IBM 書籍

參考手冊

FFI 內建函數

DTWF_APPEND


AIX HP-UX Linux OS/2 OS/390 OS/400 SCO SUN Win NT
X

X X X
X X

目的

將 Net.Data 表格的目次寫入文字檔尾端。

格式

@DTWF_APPEND(filename, transform, delimiter, table, retry, rows)

@DTWF_APPEND(filename, transform, delimiter, table, retry)

@DTWF_APPEND(filename, transform, delimiter, table)

參數

表 167. DTWF_APPEND 參數

資料類型 參數 使用 說明
字串 filename INOUT 變數內容將新增至其中的檔案名稱。呼叫順利完成時, 這個參數會傳回全部完整的檔名。
字串 transform IN 檔案的格式:

  • ASCIITEXT - 將表格寫入檔案,各直欄值之間放入換行字,並忽略 delimiter 參數。

  • DELIMITED - 使用指定在 delimiter 參數中的區隔字元來將表格寫入檔案中。
檔案中的換行字元指出 ASCIITEXT 與 DELIMITED 轉換的 Net.Data 巨集表格的橫列結尾。
字串 delimiter IN 一個指示值終止的字元字串。這個參數是區分大小寫的。忽略,如果 transform 是 ASCIITEXT。
表格 table IN 一個從中讀取記錄的表格變數。

對非 OS/400 使用者而言:FFI 表格中橫列的最大長度為 16383 個字元。 此限制包括 Net.Data 巨集表格中每一直欄的空值字元。

整數 retry IN 如果檔案無法立刻附加的話,所要重試的次數。預設值是不重試。
整數 rows IN table 中所附加之最大的列數目。預設值是附加所有的列。指定 0 將附加所有的列。

回覆碼

表 168. DTWF_APPEND 回覆碼

回覆碼 說明
-1001 伺服器無法處理 Net.Data 的配置記憶體要求。
1001 輸入參數包含 NULL 值。
1002 輸入參數包含的字串有空字元結尾。
1003 函數呼叫中傳遞的參數超過容許數目,或少於函數要求的最小數目。
1004 函數呼叫上傳遞的參數必須是 Net.Data 巨集表變數,但卻是不同的變數類型。
1005 函數呼叫上傳遞的參數必須是字串變數,但卻是不同的變數類型。
1006 文字字串傳遞給函數呼叫中的參數, 但此參數必須是輸出參數。
1007 參數包含的值無效。
2000 純本文檔介面內建函數找不到指定的檔案。
2001 純本文檔介面內建函數無法開啟指定的檔案, 因為檔案正被此處理或另一個處理使用,無法在指定模式之下共用。
2003 純本文檔介面內建函數無法將一列資料讀入表格變數中, 因為橫列的位元組數超出支援的最大位元組數。
2004 純本文檔介面內建函數試圖尋找檔案, 但發現 FFI_PATH 架構檔變數中有一個路徑的長度超過支援的最大位元組數 4095。
2005 呼叫系統功能失敗。
2006 純本文檔介面內建函數無法存取指定的檔案, 因為檔案正被此處理或另一個處理使用,無法在指定模式之下共用。

用法注意事項

檔案的現行內容會影響使用 DTWF_APPEND 的結果,尤其是最後一橫列的最後一直欄的內容。 如果換行字元後面跟著檔案的最後一橫列的最後一直欄值,附加的資料將置於新橫列中。 否則,附加的資料將變成檔案的最後一橫列的一部份。

範例

範例 1

%DEFINE {
   myFile = "c:/private/myfile"
   myTable = %TABLE
%}
@DTWF_APPEND(myFile, "DELIMITED", " ;", myTable)

範例 2

%DEFINE {
   myFile = "c:/private/myfile"
   myTable = %TABLE
%}
@DTWF_APPEND(myFile, "ASCIITEXT", " ;", myTable)

範例 3

%DEFINE {
   myFile = "c:/private/myfile"
   myTable = %TABLE
%}
@DTWF_APPEND(myFile, "ASCIITEXT", " ;", myTable, "0", "10")

DTWF_CLOSE


AIX HP-UX Linux OS/2 OS/390 OS/400 SCO SUN Win NT
X

X X X
X X

目的

關閉由 DTWF_OPEN 所開啟的檔案。

格式

@DTWF_CLOSE(filename, retry)

@DTWF_CLOSE(filename)

參數

表 169. DTWF_CLOSE 參數

資料類型 參數 使用 說明
字串 filename INOUT 所要關閉之檔案的名稱。呼叫順利完成時, 這個參數會傳回全部完整的檔名。
整數 retry IN 如果檔案無法立刻關閉的話,所要重試 的次數。 預設值是不重試。

回覆碼

表 170. DTWF_CLOSE 回覆碼

回覆碼 說明
-1001 伺服器無法處理 Net.Data 的配置記憶體要求。
1001 輸入參數包含 NULL 值。
1002 輸入參數包含的字串有空字元結尾。
1003 函數呼叫中傳遞的參數超過容許數目,或少於函數要求的最小數目。
1005 函數呼叫上傳遞的參數必須是字串變數,但卻是不同的變數類型。
1007 參數包含的值無效。
2002 純本文檔介面內建函數無法關閉指定的檔案,因為這個巨集呼叫並未開啟此檔。

範例

範例 1

@DTWF_CLOSE(myFile, "5")

DTWF_DELETE


AIX HP-UX Linux OS/2 OS/390 OS/400 SCO SUN Win NT
X

X X X
X X

目的

從文字檔中刪除一些行。

格式

@DTWF_DELETE(filename, transform, delimiter, retry, rows, startrow)

@DTWF_DELETE(filename, transform, delimiter, retry, rows)

@DTWF_DELETE(filename, transform, delimiter, retry)

@DTWF_DELETE(filename, transform, delimiter)

參數

表 171. DTW_DELETE 參數

資料類型 參數 使用 說明
字串 filename INOUT 所要刪除之記錄的檔案名稱。 呼叫順利完成時, 這個參數會傳回全部完整的檔名。
字串 transform IN 檔案的格式:

  • ASCIITEXT - 將表格寫入檔案,各直欄值之間放入換行字,並忽略 delimiter 參數。

  • DELIMITED - 使用指定在 delimiter 參數中的區隔字元來將表格寫入檔案中。
檔案中的換行字元指出 ASCIITEXT 與 DELIMITED 轉換的 Net.Data 巨集表格的橫列結尾。
字串 delimiter IN 一個指示值終止的字元字串。這個參數是區分大小寫 的。忽略,如果transform 是 ASCIITEXT。
整數 retry IN 如果記錄無法立刻刪除的話,所要重試 的次數。 預設值是不重試。
整數 rows IN 所要刪除之最大的的列數目。預設值 是刪除所有的列。 指定 0 將刪除所有的列。
整數 startrow INOUT 開始刪除的列號碼。 值 1 表示從第一列開始刪除。如果這個值大於在檔案中的列號碼,則該值會被 變更為最後一個記錄並以錯誤傳回。預設值是從 1 開始。

回覆碼

表 172. DTWF_DELETE 回覆碼

回覆碼 說明
-1001 伺服器無法處理 Net.Data 的配置記憶體要求。
1001 輸入參數包含 NULL 值。
1002 輸入參數包含的字串有空字元結尾。
1003 函數呼叫中傳遞的參數超過容許數目,或少於函數要求的最小數目。
1005 函數呼叫上傳遞的參數必須是字串變數,但卻是不同的變數類型。
1006 文字字串傳遞給函數呼叫中的參數, 但此參數必須是輸出參數。
1007 參數包含的值無效。
2000 純本文檔介面內建函數找不到指定的檔案。
2001 純本文檔介面內建函數無法開啟指定的檔案, 因為檔案正被此處理或另一個處理使用,無法在指定模式之下共用。
2003 純本文檔介面內建函數無法將一列資料讀入表格變數中, 因為橫列的位元組數超出支援的最大位元組數。
2004 純本文檔介面內建函數試圖尋找檔案, 但發現 FFI_PATH 架構檔變數中有一個路徑的長度超過支援的最大位元組數 4095。
2005 呼叫系統功能失敗。
2006 純本文檔介面內建函數無法存取指定的檔案, 因為檔案正被此處理或另一個處理使用,無法在指定模式之下共用。

範例

範例 1

%DEFINE {
   myFile = "c:/private/myfile"
   myTable = %TABLE
   myWait = "5000"
   myRows = "2"
%}
@DTWF_DELETE(myFile, "Delimited", "|", myWait, myRows)

範例 2

%DEFINE {
   myFile = "c:/private/myfile"
   myTable = %TABLE
   myStart = "1"
   myRows = "2"
%}
@DTWF_DELETE(myFile, "Asciitext", "|", "0", myRows, myStart)

DTWF_INSERT


AIX HP-UX Linux OS/2 OS/390 OS/400 SCO SUN Win NT
X

X X X
X X

目的

插入一些行到文字檔中。

格式

@DTWF_INSERT(filename, transform, delimiter, table, retry, rows, startrow)

@DTWF_INSERT(filename, transform, delimiter, table, retry, rows)

@DTWF_INSERT(filename, transform, delimiter, table, retry)

@DTWF_INSERT(filename, transform, delimiter, table)

參數

表 173. DTWF_INSERT 參數

資料類型 參數 使用 說明
字串 filename INOUT 插入記錄的檔案名稱。 呼叫順利完成時, 這個參數會傳回全部完整的檔名。
字串 transform IN 檔案的格式:

  • ASCIITEXT - 將表格寫入檔案,各直欄值之間放入換行字,並忽略 delimiter 參數。

  • DELIMITED - 使用指定在 delimiter 參數中的區隔字元來將表格寫入檔案中。
檔案中的換行字元指出 ASCIITEXT 與 DELIMITED 轉換的 Net.Data 巨集表格的橫列結尾。
字串 delimiter IN 一個指示值終止的字元字串。這個參數是區分大小寫 的。忽略,如果transform 是 ASCIITEXT。
表格 table IN 從該處將記錄插入表格的記錄 變數。

對非 OS/400 使用者而言:FFI 表格中橫列的最大長度為 16383 個字元。 此限制包括 Net.Data 巨集表格中每一直欄的空值字元。

整數 retry IN 如果檔案無法立刻被寫入的話,所要重試 的次數。預設值是不重試。
整數 rows IN table 所插入之最大的 列數。 預設值 是插入所有的列。 值 0 將會插入所有的列。
整數 startrow INOUT 開始插入的行號。 如果此值大於檔案的行數,則該值會被變更為最後一筆記錄並當作錯誤傳回。 若指定 0,表示從檔案開頭後面插入。預設值是從 1 開始。

回覆碼

表 174. DTWF_INSERT 回覆碼

回覆碼 說明
-1001 伺服器無法處理 Net.Data 的配置記憶體要求。
1001 輸入參數包含 NULL 值。
1002 輸入參數包含的字串有空字元結尾。
1003 函數呼叫中傳遞的參數超過容許數目,或少於函數要求的最小數目。
1004 函數呼叫上傳遞的參數必須是 Net.Data 巨集表變數,但卻是不同的變數類型。
1005 函數呼叫上傳遞的參數必須是字串變數,但卻是不同的變數類型。
1006 文字字串傳遞給函數呼叫中的參數, 但此參數必須是輸出參數。
1007 參數包含的值無效。
2000 純本文檔介面內建函數找不到指定的檔案。
2001 純本文檔介面內建函數無法開啟指定的檔案, 因為檔案正被此處理或另一個處理使用,無法在指定模式之下共用。
2003 純本文檔介面內建函數無法將一列資料讀入表格變數中, 因為橫列的位元組數超出支援的最大位元組數。
2004 純本文檔介面內建函數試圖尋找檔案, 但發現 FFI_PATH 架構檔變數中有一個路徑的長度超過支援的最大位元組數 4095。
2005 呼叫系統功能失敗。
2006 純本文檔介面內建函數無法存取指定的檔案, 因為檔案正被此處理或另一個處理使用,無法在指定模式之下共用。

範例

範例 1

%DEFINE {
   myFile = "c:/private/myfile"
   myTable = %TABLE
   myWait = "3000"
%}
@DTWF_INSERT(myFile, "Delimited", "|", myTable, myWait)

範例 2

%DEFINE {
   myFile = "c:/private/myfile"
   myTable = %TABLE
   myStart = "1"
   myRows = "2"
%}
@DTWF_INSERT(myFile, "Asciitext", "|", myTable, "0", myRows, myStart)

DTWF_OPEN


AIX HP-UX Linux OS/2 OS/390 OS/400 SCO SUN Win NT
X

X X X
X X

目的

開啟文字檔。

格式

@DTWF_OPEN(filename, mode, retry)

@DTWF_OPEN(filename, mode)

參數

表 175. DTWF_OPEN 參數

資料類型 參數 使用 說明
字串 filename INOUT 所要開啟的檔案名稱。呼叫順利完成時, 這個參數會傳回全部完整的檔名。
字串 mode IN 所要求的存取類型:

  • r - 開啟舊有的檔案以供讀取。

  • w - 建立一個檔案以供撰寫。(將舊有之相同的檔案名稱銷毀,如果存在 的話。)

  • a - 開啟一個檔案以供附加。 如果找不到的話,Net.Data 會建立檔案。

  • r+ - 開啟一個舊有的檔案以供讀取和寫入。

  • w+ - 建立一個檔案以供讀取和寫入。 (將舊有之相同的檔案名稱銷毀,如果存在 的話。)

  • a+ - 以附加模式開啟檔案以供讀取或附加。如果找不到的話,Net.Data 會建立檔案。
整數 retry IN 如果檔案無法立刻開啟的話,所要重試 的次數。 預設值是不重試。

回覆碼

表 176. DTWF_OPEN 回覆碼

回覆碼 說明
-1001 伺服器無法處理 Net.Data 的配置記憶體要求。
1001 輸入參數包含 NULL 值。
1002 輸入參數包含的字串有空字元結尾。
1003 函數呼叫中傳遞的參數超過容許數目,或少於函數要求的最小數目。
1005 函數呼叫上傳遞的參數必須是字串變數,但卻是不同的變數類型。
1006 文字字串傳遞給函數呼叫中的參數, 但此參數必須是輸出參數。
1007 參數包含的值無效。
2000 純本文檔介面內建函數找不到指定的檔案。
2001 純本文檔介面內建函數無法開啟指定的檔案, 因為檔案正被此處理或另一個處理使用,無法在指定模式之下共用。
2006 純本文檔介面內建函數無法存取指定的檔案, 因為檔案正被此處理或另一個處理使用,無法在指定模式之下共用。

用法注意事項

  1. 當檔案不存在時,應該指定檔名的絕對路徑, 且將建立檔案的目錄須符合 FFI_PATH 中指定的目錄。 如果未使用絕對路徑,將開啟現行工作目錄中的檔案。

  2. DTWF_OPEN 會保持檔案開啟,否則 在每一個純本文檔作業後,檔案會關閉。

  3. 使用 DTWF_OPEN 來減少檔案開啟的次數。若未使用 DTWF_OPEN, 則在每一次純本文檔作業之後,檔案會關閉。 檔案會一直保持開啟,直到使用 DTWF_CLOSE 關閉,或 巨集處理程序終止。

範例

範例 1

%DEFINE {
   myFile = "c:/private/myfile"
  myMode = "r+"
%}
@DTWF_OPEN(myFile, myMode, "1000")

DTWF_READ


AIX HP-UX Linux OS/2 OS/390 OS/400 SCO SUN Win NT
X

X X X
X X

目的

從文字檔讀取一些行到 Net.Data 表格中。

格式

@DTWF_READ(filename, transform, delimiter, table, retry, rows, startrow, columns)

@DTWF_READ(filename, transform, delimiter, table, retry, rows, startrow)

@DTWF_READ(filename, transform, delimiter, table, retry, rows)

@DTWF_READ(filename, transform, delimiter, table, retry)

@DTWF_READ(filename, transform, delimiter, table)

參數

表 177. DTWF_READ 參數

資料類型 參數 使用 說明
字串 filename INOUT 將其記錄讀取至表格變數中的檔案名稱。 呼叫順利完成時, 這個參數會傳回全部完整的檔名。
字串 transform IN 檔案的格式:

  • ASCIITEXT - 將表格寫入檔案,各直欄值之間放入換行字,並忽略 delimiter 參數。

  • DELIMITED - 使用指定在 delimiter 參數中的區隔字元來將表格寫入檔案中。
檔案中的換行字元指出 ASCIITEXT 與 DELIMITED 轉換的 Net.Data 巨集表格的橫列結尾。
字串 delimiter IN 一個指示值終止的字元字串。這個參數是區分大小寫 的。忽略,如果transform 是 ASCIITEXT。
表格 table OUT 一個從中讀取檔案記錄的表格變數。

對非 OS/400 使用者而言:FFI 表格中橫列的最大長度為 16383 個字元。 此限制包括 Net.Data 巨集表格中每一直欄的空值字元。

整數 retry IN 如果檔案無法立刻讀取的話,所要重試 的次數。 預設值是不重試。
整數 rows INOUT 所要讀取至表格中之檔案記錄的最大數目 。預設值是讀取所有的記錄,或直到表格已滿。0 值表示一直讀取至檔案的尾端。返回在結果表格中的列數。
整數 startrow IN 在檔案中,要開始使用的記錄。預設值 是從第一個記錄開啟讀取。
整數 columns OUT 傳回表格中的欄數。

回覆碼

表 178. DTWF_READ 回覆碼

回覆碼 說明
-1001 伺服器無法處理 Net.Data 的配置記憶體要求。
1001 輸入參數包含 NULL 值。
1002 輸入參數包含的字串有空字元結尾。
1003 函數呼叫中傳遞的參數超過容許數目,或少於函數要求的最小數目。
1004 函數呼叫上傳遞的參數必須是 Net.Data 巨集表變數,但卻是不同的變數類型。
1005 函數呼叫上傳遞的參數必須是字串變數,但卻是不同的變數類型。
1006 文字字串傳遞給函數呼叫中的參數, 但此參數必須是輸出參數。
1007 參數包含的值無效。
1010 資料會被寫入表格中,直到表格沒有空位為止,剩餘資料則捨棄。
2000 純本文檔介面內建函數找不到指定的檔案。
2001 純本文檔介面內建函數無法開啟指定的檔案, 因為檔案正被此處理或另一個處理使用,無法在指定模式之下共用。
2003 純本文檔介面內建函數無法將一列資料讀入表格變數中, 因為橫列的位元組數超出支援的最大位元組數。
2004 純本文檔介面內建函數試圖尋找檔案, 但發現 FFI_PATH 架構檔變數中有一個路徑的長度超過支援的最大位元組數 4095。
2005 呼叫系統功能失敗。
2006 純本文檔介面內建函數無法存取指定的檔案, 因為檔案正被此處理或另一個處理使用,無法在指定模式之下共用。

範例

範例 1

%DEFINE {
   myFile = "c:/private/myfile"
   myTable = %TABLE
  myWait = "1000"
%}
@DTWF_READ(myFile, "DELIMITED", ";", myTable, myWait)

範例 2

%DEFINE {
   myFile = "c:/private/myfile"
   myTable = %TABLE
  myWait = "0"
  myRows = "0"
  myStartrow = "1"
  myColumns = ""
%}
@DTWF_READ(myFile, "DELIMITED", ";", myTable, myWait, myRows,
             myStartrow, myColumns)

範例 3

%DEFINE {
   myFile = "c:/private/myfile"
   myTable = %TABLE
%}
@DTWF_READ(myFile, "ASCIITEXT", ";", myTable)
@DTW_TB_TABLE(myTable,"BORDER","")

DTWF_REMOVE


AIX HP-UX Linux OS/2 OS/390 OS/400 SCO SUN Win NT
X

X X X
X X

目的

刪除整個檔案。

格式

@DTWF_REMOVE(filename, retry)

@DTWF_REMOVE(filename)

參數

表 179. DTW_REMOVE 參數

資料類型 參數 使用 說明
字串 filename INOUT 所要刪除的檔案名稱。 呼叫順利完成時, 這個參數會傳回全部完整的檔名。
整數 retry IN 如果檔案無法立刻刪除的話,所要重試 的次數。 預設值是不重試。

回覆碼

表 180. DTWF_REMOVE 回覆碼

回覆碼 說明
-1001 伺服器無法處理 Net.Data 的配置記憶體要求。
1001 輸入參數包含 NULL 值。
1002 輸入參數包含的字串有空字元結尾。
1003 函數呼叫中傳遞的參數超過容許數目,或少於函數要求的最小數目。
1005 函數呼叫上傳遞的參數必須是字串變數,但卻是不同的變數類型。
1006 文字字串傳遞給函數呼叫中的參數, 但此參數必須是輸出參數。
1007 參數包含的值無效。
2000 純本文檔介面內建函數找不到指定的檔案。
2006 純本文檔介面內建函數無法存取指定的檔案, 因為檔案正被此處理或另一個處理使用,無法在指定模式之下共用。

範例

範例 1

%DEFINE myFile = "c:/private/myfile"
@DTWF_REMOVE(myFile)

範例 2

%DEFINE {
   myFile = "c:/private/myfile"
  myWait = "2000"
%}
@DTWF_REMOVE(myFile, myWait)

DTWF_SEARCH


AIX HP-UX Linux OS/2 OS/390 OS/400 SCO SUN Win NT
X

X X X
X X

目的

搜尋文字檔的字串,將結果傳回 Net.Data 表格。

格式

@DTWF_SEARCH(filename, transform, delimiter, table, searchFor, retry, rows, startrow)

@DTWF_SEARCH(filename, transform, delimiter, table, searchFor, retry, rows)

@DTWF_SEARCH(filename, transform, delimiter, table, searchFor, retry)

@DTWF_SEARCH(filename, transform, delimiter, table, searchFor)

參數

表 181. DTWF_SEARCH 參數

資料類型 參數 使用 說明
字串 filename INOUT 所要搜尋之檔案的名稱。 呼叫順利完成時, 這個參數會傳回全部完整的檔名。
字串 transform IN 檔案的格式:

  • ASCIITEXT - 將表格寫入檔案,各直欄值之間放入換行字,並忽略 delimiter 參數。

  • DELIMITED - 使用指定在 delimiter 參數中的區隔字元來將表格寫入檔案中。
檔案中的換行字元指出 ASCIITEXT 與 DELIMITED 轉換的 Net.Data 巨集表格的橫列結尾。
字串 delimiter IN 一個指示值終止的字元字串。這個參數是區分大小寫 的。忽略,如果transform 是 ASCIITEXT。
表格 table OUT 一個置放結果的表格變數。 如果轉換是 DELIMITED,會傳回三個直欄:

  • 找到有相符者的列。

  • 找到有相符者的欄。

  • 來自檔案的相符欄。

對非 OS/400 使用者而言:FFI 表格中橫列的最大長度為 16383 個字元。 此限制包括 Net.Data 巨集表格中每一直欄的空值字元。

字串 searchFor IN 所要搜尋的字元字串。
整數 retry IN 如果檔案無法立刻搜尋的話,所要重試 的次數。 預設值是不重試。
整數 rows INOUT 要讀取入table 中之最大的列數。 預設值是讀取所有的列,或直到table 已滿。 指定 0 來讀取置檔案的尾端。 在 結果表格中的列數是由這個參數傳回的。
整數 startrow IN 在檔案中開始進行搜尋的記錄。預設值是 1,其將從第一個記錄開始搜尋。

回覆碼

表 182. DTWF_SEARCH 回覆碼

回覆碼 說明
-1001 伺服器無法處理 Net.Data 的配置記憶體要求。
1001 輸入參數包含 NULL 值。
1002 輸入參數包含的字串有空字元結尾。
1003 函數呼叫中傳遞的參數超過容許數目,或少於函數要求的最小數目。
1004 函數呼叫上傳遞的參數必須是 Net.Data 巨集表變數,但卻是不同的變數類型。
1005 函數呼叫上傳遞的參數必須是字串變數,但卻是不同的變數類型。
1006 文字字串傳遞給函數呼叫中的參數, 但此參數必須是輸出參數。
1007 參數包含的值無效。
1010 資料會被寫入表格中,直到表格沒有空位為止,剩餘資料則捨棄。
2000 純本文檔介面內建函數找不到指定的檔案。
2001 純本文檔介面內建函數無法開啟指定的檔案, 因為檔案正被此處理或另一個處理使用,無法在指定模式之下共用。
2003 純本文檔介面內建函數無法將一列資料讀入表格變數中, 因為橫列的位元組數超出支援的最大位元組數。
2004 純本文檔介面內建函數試圖尋找檔案, 但發現 FFI_PATH 架構檔變數中有一個路徑的長度超過支援的最大位元組數 4095。
2005 呼叫系統功能失敗。
2006 純本文檔介面內建函數無法存取指定的檔案, 因為檔案正被此處理或另一個處理使用,無法在指定模式之下共用。

用法注意事項

  1. 因 DTWF_SEARCH 傳回的表格具有三欄。前兩欄含有找到相符字元的橫列與直欄號碼; 最後一直欄含有的直欄值具有 SearchFor 參數中所指定的字元。 例如,如果檔案的第 4 列含有第 3 欄的相符字元, 則傳回的表格將具有在第一欄具有號碼 4 一列, 來指出檔案的橫列的出處;它在第 2 欄具有號碼 3, 指出檔案的哪一欄具有相符字元;它在第 3 欄中具有完整的直欄值

  2. SearchFor 參數無法包括 delimiter 參數的內容

範例

範例 1

%DEFINE {
   myFile = "c:/private/myfile"
   myTable = %TABLE
  myWait = "1000"
  mySearch = "0123456789abcdef"
@DTWF_SEARCH(myFile, "DELIMITED", ";",
               myTable, mySearch, myWait)

範例 2

%DEFINE {
   myFile = "c:/private/myfile"
   myTable = %TABLE
  mySearch = "answer:"
  myWait = "0"
  myRows = "0"
  myStartrow = "1"
%}
@DTWF_SEARCH(myFile, "DELIMITED", ";", myTable,
               mySearch, myWait, myRows, myStartrow)

DTWF_UPDATE


AIX HP-UX Linux OS/2 OS/390 OS/400 SCO SUN Win NT
X

X X X
X X

目的

以 Net.Data 表格中的資料更新文字檔中某些行。

格式

@DTWF_UPDATE(filename, transform, delimiter, table, retry, rows, startrow)

@DTWF_UPDATE(filename, transform, delimiter, table, retry, rows)

@DTWF_UPDATE(filename, transform, delimiter, table, retry)

@DTWF_UPDATE(filename, transform, delimiter, table)

參數

表 183. DTWF_UPDATE 參數

資料類型 參數 使用 說明
字串 filename INOUT 其記錄是從表格變數來更新的檔案名稱。 呼叫順利完成時, 這個參數會傳回全部完整的檔名。
字串 transform IN 檔案的格式:

  • ASCIITEXT - 將表格寫入檔案,各直欄值之間放入換行字,並忽略 delimiter 參數。

  • DELIMITED - 使用指定在 delimiter 參數中的區隔字元來將表格寫入檔案中。
檔案中的換行字元指出 ASCIITEXT 與 DELIMITED 轉換的 Net.Data 巨集表格的橫列結尾。
字串 delimiter IN 一個指示值終止的字元字串。這個參數是區分大小寫 的。忽略,如果transform 是 ASCIITEXT。
表格 table IN 檔案記錄從該處開始更新的表格變數。

對非 OS/400 使用者而言:FFI 表格中橫列的最大長度為 16383 個字元。 此限制包括 Net.Data 巨集表格中每一直欄的空值字元。

整數 retry IN 如果檔案無法立刻被寫入的話,所要重試 的次數。預設值是不重試。
整數 rows IN table 所要更新之記錄的最大 數目。 預設值 是更新所有的記錄。 0 值表示更新所有在檔案中的列 。
整數 startrow INOUT 要更新的第一個檔案。預設值是 1, 其表示在檔案的開始即進行更新。如果值大於檔案中記錄的數目,則該值會 被變更為指示在檔案中最後一個記錄的號碼,並傳回錯誤。

回覆碼

表 184. DTWF_UPDATE 回覆碼

回覆碼 說明
-1001 伺服器無法處理 Net.Data 的配置記憶體要求。
1001 輸入參數包含 NULL 值。
1002 輸入參數包含的字串有空字元結尾。
1003 函數呼叫中傳遞的參數超過容許數目,或少於函數要求的最小數目。
1004 函數呼叫上傳遞的參數必須是 Net.Data 巨集表變數,但卻是不同的變數類型。
1005 函數呼叫上傳遞的參數必須是字串變數,但卻是不同的變數類型。
1006 文字字串傳遞給函數呼叫中的參數, 但此參數必須是輸出參數。
1007 參數包含的值無效。
2000 純本文檔介面內建函數找不到指定的檔案。
2001 純本文檔介面內建函數無法開啟指定的檔案, 因為檔案正被此處理或另一個處理使用,無法在指定模式之下共用。
2003 純本文檔介面內建函數無法將一列資料讀入表格變數中, 因為橫列的位元組數超出支援的最大位元組數。
2004 純本文檔介面內建函數試圖尋找檔案, 但發現 FFI_PATH 架構檔變數中有一個路徑的長度超過支援的最大位元組數 4095。
2005 呼叫系統功能失敗。
2006 純本文檔介面內建函數無法存取指定的檔案, 因為檔案正被此處理或另一個處理使用,無法在指定模式之下共用。

用法注意事項

如果檔案不存在時,應該指定檔名的絕對路徑, 且將建立檔案的目錄須符合 FFI_PATH 中指定的目錄。如果未使用絕對路徑,將開啟現行工作目錄中的檔案。

範例

範例 1

%DEFINE {
   myFile = "c:/private/myfile"
   myTable = %TABLE
   myWait = "1500"
   myRows = "2"
%}
@DTWF_UPDATE(myFile, "Delimited", "|", myTable, myWait, myRows)

範例 2

%DEFINE {
   myFile = "c:/private/myfile"
   myTable = %TABLE
   myStart = "1"
   myRows = "2"
%}
@DTWF_UPDATE(myFile, "Asciitext", "|", myTable, "0", myRows, myStart)

DTWF_WRITE


AIX HP-UX Linux OS/2 OS/390 OS/400 SCO SUN Win NT
X

X X X
X X

目的

將 Net.Data 表格目次寫入文字檔中。

格式

@DTWF_WRITE(filename, transform, delimiter, table, retry, rows, startrow)

@DTWF_WRITE(filename, transform, delimiter, table, retry, rows)

@DTWF_WRITE(filename, transform, delimiter, table, retry)

@DTWF_WRITE(filename, transform, delimiter, table)

參數

表 185. DTWF_WRITE 參數

資料類型 參數 使用 說明
字串 filename INOUT 一個寫入表格變數之記錄的檔案名稱。 呼叫順利完成時, 這個參數會傳回全部完整的檔名。
字串 transform IN 檔案的格式:

  • ASCIITEXT - 將表格寫入檔案,各直欄值之間放入換行字,並忽略 delimiter 參數。

  • DELIMITED - 使用指定在 delimiter 參數中的區隔字元來將表格寫入檔案中。
檔案中的換行字元指出 ASCIITEXT 與 DELIMITED 轉換的 Net.Data 巨集表格的橫列結尾。
字串 delimiter IN 一個指示值終止的字元字串。這個參數是區分大小寫 的。忽略,如果transform 是 ASCIITEXT。
表格 table IN 使用來將列匯出至檔案的表格變數。

對非 OS/400 使用者而言:FFI 表格中橫列的最大長度為 16383 個字元。 此限制包括 Net.Data 巨集表格中每一直欄的空值字元。

整數 retry IN 如果檔案無法立刻被寫入的話,所要重試 的次數。預設值是不重試。
整數 rows IN 所要撰寫之檔案記錄的最大數目 。 預設值是寫入整個表格。0 值表示撰寫所有至檔案尾端的記錄 。
整數 startrow INOUT 開始撰寫至檔案中的記錄號碼。預設值是 1, 其表示在第一個記錄開始進行。 如果一個值位於所指定的檔案之後,檔案 的最後一列將會與錯誤一起傳回。

回覆碼

表 186. DTWF_WRITE 回覆碼

回覆碼 說明
-1001 伺服器無法處理 Net.Data 的配置記憶體要求。
1001 輸入參數包含 NULL 值。
1002 輸入參數包含的字串有空字元結尾。
1003 函數呼叫中傳遞的參數超過容許數目,或少於函數要求的最小數目。
1004 函數呼叫上傳遞的參數必須是 Net.Data 巨集表變數,但卻是不同的變數類型。
1005 函數呼叫上傳遞的參數必須是字串變數,但卻是不同的變數類型。
1006 文字字串傳遞給函數呼叫中的參數, 但此參數必須是輸出參數。
1007 參數包含的值無效。
2000 純本文檔介面內建函數找不到指定的檔案。
2001 純本文檔介面內建函數無法開啟指定的檔案, 因為檔案正被此處理或另一個處理使用,無法在指定模式之下共用。
2003 純本文檔介面內建函數無法將一列資料讀入表格變數中, 因為橫列的位元組數超出支援的最大位元組數。
2004 純本文檔介面內建函數試圖尋找檔案, 但發現 FFI_PATH 架構檔變數中有一個路徑的長度超過支援的最大位元組數 4095。
2005 呼叫系統功能失敗。
2006 純本文檔介面內建函數無法存取指定的檔案, 因為檔案正被此處理或另一個處理使用,無法在指定模式之下共用。

用法注意事項

如果檔案不存在時,應該指定檔名的絕對路徑, 且將建立檔案的目錄須符合 FFI_PATH 中指定的目錄。如果未使用絕對路徑,將開啟現行工作目錄中的檔案。

範例

範例 1

%DEFINE {
   myFile = "c:/private/myfile"
   myTable = %TABLE
%}
@DTWF_WRITE(myFile, "DELIMITED", ";", myTable)

範例 2

%DEFINE {
   myFile = "c:/private/myfile"
   myTable = %TABLE
%}
@DTWF_WRITE(myFile, "ASCIITEXT", ";", myTable, "5000")

範例 3

%DEFINE {
   myFile = "c:/private/myfile"
   myTable = %TABLE
%}
@DTWF_WRITE(myFile, "ASCIITEXT", ";", myTable, "5000", "10", "50")


[ 頁面頂端 | 前一頁 | 下一頁 | 目錄 | 索引 ]