AIX | HP-UX | Linux | OS/2 | OS/390 | OS/400 | PTX | SUN | Win NT |
X | X | X | X | X | X | X | X | X |
目的
從文字檔讀取一些行到 Net.Data 表格中。
格式
@DTWF_READ(filename, transform, delimiter, table, retry, lines, startline, columns)
@DTWF_READ(filename, transform, delimiter, table, retry, lines, startline)
@DTWF_READ(filename, transform, delimiter, table, retry, lines)
@DTWF_READ(filename, transform, delimiter, table, retry)
@DTWF_READ(filename, transform, delimiter, table)
參數
資料類型 | 參數 | 使用 | 說明 |
---|---|---|---|
字串 | filename | INOUT | 將其記錄讀取至表格變數中的檔案名稱。 呼叫順利完成時, 這個參數會傳回全部完整的檔名。 |
字串 | transform | IN | 檔案的格式:
|
字串 | delimiter | IN | 一個指示值終止的字元字串。這個參數是區分大小寫 的。忽略,如果transform 是 ASCIITEXT。 |
表格 | table | OUT | 一個從中讀取檔案記錄的表格變數。
對非 OS/400 使用者而言:FFI 表格中橫列的最大長度為 16383 個字元。 此限制包括 Net.Data 巨集表格中每一直欄的空值字元。 |
整數 | retry | IN | 如果檔案無法立刻讀取的話,所要重試 的次數。 預設值是不重試。 |
整數 | 行數 | INOUT | 可讀取至表格內的檔案中行數。0 值表示一直讀取至檔案的尾端,或直到表格已滿; 此為預設值。在此函數呼叫成功完成的情況下,會返回在結果表格中的列數。 |
整數 | 起始行 | IN | 在檔案中,要開始讀取使用的行。預設值是從第一行開始讀取。 |
整數 | columns | OUT | 傳回表格中的欄數。 |
回覆碼
回覆碼 | 說明 |
---|---|
-1001 | 伺服器無法處理 Net.Data 的配置記憶體要求。 |
1001 | 輸入參數包含 NULL 值。 |
1002 | 輸入參數包含的字串有空字元結尾。 |
1003 | 函數呼叫上傳遞的參數數目不正確。 |
1004 | 函數呼叫上傳遞的參數必須是 Net.Data 巨集表變數,但卻是不同的變數類型。 |
1005 | 函數呼叫上傳遞的參數必須是字串變數,但卻是不同的變數類型。 |
1006 | 文字字串傳遞給函數呼叫中的參數, 但此參數必須是輸出參數。 |
1007 | 參數包含的值無效。 |
1010 | 資料會被寫入表格中,直到表格沒有空位為止,剩餘資料則捨棄。 |
2000 | 純本文檔介面內建函數找不到指定的檔案。 |
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","")