IBM Books

Net.Data 參考手冊

鎖定檔案

您可以使用 DTWF_OPEN 與 DTWF_CLOSE 函數,鎖定純本文檔。 這些函數容許您保留檔案供 Net.Data 處理使用,因為它需要存取檔案, 以便沒有其他處理可以讀取或更新檔案。

若要鎖定檔案,請使用 DTWF_OPEN 函數。此函數確定其他應用程式無法使用檔案, 如此可避免檔案在讀取與更新之間遭人變更。

若要釋放檔案,請使用 DTWF_CLOSE 函數。此函數會從 Net.Data 處理的控制中釋放檔案, 以容許其他處理可讀取或更新檔案。

DTWF_APPEND


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

目的

將表格的變數的目次寫入檔案尾端。

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

格式

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

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

@DTWF_APPEND(filename, transform, delimiter, table)


表 92. 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 將附加所有的列。

範例

範例 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 OS/2 OS/390 OS/400 SCO SUN Win NT
X X X X X X X X

目的

關閉由 DTWF_OPEN 所開啟的檔案。

格式

@DTWF_CLOSE(filename, retry)

@DTWF_CLOSE(filename)


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

範例

範例 1

@DTWF_CLOSE(myFile, "5")

DTWF_DELETE


AIX HP-UX OS/2 OS/390 OS/400 SCO SUN Win NT
X X 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)


表 94. 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 開始。

範例

範例 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 OS/2 OS/390 OS/400 SCO SUN Win NT
X X 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)


表 95. 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 開始插入之列的號碼。 指定 1 表示從第一列開始插入。如果這個值大於在檔案中的列號碼,則該值會被 變更為最後一個記錄並以錯誤傳回。預設值是從 1 開始。

範例

範例 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 OS/2 OS/390 OS/400 SCO SUN Win NT
X X X X X X X X

目的

明確地開啟一個檔案。 當檔案不存在時,應該指定檔名的絕對路徑, 且將建立檔案的目錄須符合 FFI_PATH 中指定的目錄。如果未使用絕對路徑, 將開啟現行工作目錄中的檔案。 DTWF_OPEN 會保持檔案開啟,否則 在每一個純本文檔作業後,檔案會關閉。

執行效能要訣:使用 DTWF_OPEN 來減少 檔案開啟的次數。

檔案會一直保持開啟,直到使用 DTWF_CLOSE 關閉,或 巨集處理程序終止。

格式

@DTWF_OPEN(filename, mode, retry)

@DTWF_OPEN(filename, mode)


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

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

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

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

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

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

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

範例

範例 1

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

DTWF_READ


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

目的

從檔案中將記錄讀取至表格變數。

格式

@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)


表 97. 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 傳回表格中的欄數。

範例

範例 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 OS/2 OS/390 OS/400 SCO SUN Win NT
X X X X X X X X

目的

刪除整個檔案。

格式

@DTWF_REMOVE(filename, retry)

@DTWF_REMOVE(filename)


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

範例

範例 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 OS/2 OS/390 OS/400 SCO SUN Win NT
X X X X X X X X

目的

將字串搜尋的結果傳回給表格變數。

格式

@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)


表 99. 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,其將從第一個記錄開始搜尋。

使用

範例

範例 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 OS/2 OS/390 OS/400 SCO SUN Win NT
X X X X X X X X

目的

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

格式

@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)


表 100. 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, 其表示在檔案的開始即進行更新。如果值大於檔案中記錄的數目,則該值會 被變更為指示在檔案中最後一個記錄的號碼,並傳回錯誤。

範例

範例 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 OS/2 OS/390 OS/400 SCO SUN Win NT
X X X X X X X X

目的

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

格式

@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)


表 101. 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, 其表示在第一個記錄開始進行。 如果一個值位於所指定的檔案之後,檔案 的最後一列將會與錯誤一起傳回。

範例

範例 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")


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