append from array是程式中的一種命令,添加一條記錄到當前選定表中,並從相應的數組行中取出數據添加到記錄中。
定義,語法,參數,說明,示例,
定義
append from array 命令對數組中的每一行,添加一條記錄到當前選定表中,並從相應的數組行中取出數據添加到記錄中。
語法
APPEND FROM ARRAY ArrayName[FOR lExpression][FIELDS FieldList| FIELDS LIKE Skeleton| FIELDS EXCEPT Skeleton]
參數
ArrayName
指定數組名,該數組包含要複製到新記錄中的數據。命令將把數組中所有的行都追加到表中。
FOR lExpression
為數組中用於追加的記錄指定條件。在 lExpression 條件表達式中必須包含目標欄位名。在數組中的行追加到表中的記錄之前,先檢查與 lExpression 中指定的目標欄位對應的數組元素是否滿足 lExpression 中的條件。如果數組元素滿足條件,則將記錄追加表中。如果數組元素不滿足條件,這一數組行不追加到表中,並繼續檢查下一行。
FIELDS FieldList
指定只有 FieldList 中的欄位才從數組進行更新。FieldList 中的第一個欄位用數組第一個元素的內容更新,第二個欄位用第二個元素更新,依此類推。
FIELDS LIKE Skeleton
指定從數組中更新與欄位梗概 Skeleton 匹配的欄位。
FIELDS EXCEPT Skeleton
指定從數組中更新所有與欄位梗概 Skeleton 不匹配的欄位。
欄位梗概 Skeleton 支持通配符。例如,為了指定從數組更新所有以字母A與P開頭的欄位,可以用:
APPEND FROM ARRAY aMyArray FIELDS LIKE A*,P*
LIKE 子句可以同 EXCEPT 子句組合使用。
APPEND FROM ARRAY aMyArray FIELDS LIKE A*,P* EXCEPT PARTNO*
說明
在 append from array 命令中,備註欄位和通用欄位將被忽略。如果表處於打開狀態並被共享使用,在追加記錄時,APPEND FROM ARRAY 命令將鎖定表頭。
如果數組是一維的,append from array 命令只在表中添加一個記錄。第一個數組元素的內容將填充到新添加記錄的第一個欄位,第二個元素的內容將填充到記錄的第二欄位,… 依此類推。
如果一維數組元素的個數多於表欄位數,將忽略多餘的元素。如果表欄位數多於數組元素的個數,多出的欄位將初始化為默認的空值。下面給出了各種欄位類型對應的默認空值。
欄位類型 默認值 字元型 空格 數值型 0 貨幣型 0 浮點型 0 整型 0 雙精度型 0 日期型 空日期 例如 CTOD('')) 時間型 空的日期時間型 例如 CTOT('')) 邏輯型 假(.F.) 備註型 空 無內容
當指定數組為二維數組,則為數組中的每一行在表中添加一個新記錄。例如,如果數組有 4 行,則在表中追加 4 個新記錄。 數組中第一列的內容賦值給新添加記錄的第一個欄位,第二列內容賦值給新記錄的第二個欄位,依此類推。例如,數組有四行三列,數組中的第一列元素分別賦值給四個新記錄的第一個欄位。
如果二維數組的列數多於表中的欄位數,多餘的列將被忽略。如果表欄位數多於數組列數,多出的欄位將初始化為空值 (empty value)。
例如數組元素數據與相應的欄位數據類型兼容,那么即使相應的數組元素的數據類型與欄位數據類型不匹配,APPEND FROM ARRAY也能填充欄位。如果數據不兼容,欄位將被初始化為空值。
示例
下面的示例將複製備註欄位 notes的內容到名為test.txt 的檔案中。 test.txt 則被追加到備註欄位的內容中。最後, test.txt 的內容替換了備註欄位的現有內容。
close databases
open database (home(2) + 'data\testdata')use employee && 打開 employee 表
wait window 'employee notes memo field - press esc' nowait
modify memo notes noedit && 打開 notes 備註欄位
copy memo notes to test.txt && 從備註欄位創建 test檔案
wait window 'test.txt text file - press esc' nowait
modify file test.txt noedit && 打開 text檔案
wait window 'employee notes now appended - press esc' nowait
append memo notes from test.txt && 將text 檔案的內容加入
modify memo notes noedit && 再次顯示備註欄位
wait window 'overwrite employee notes- press esc' nowait