APPEND FROM ARRAY 指令
對數組中的每一行,添加一條記錄到目前標明表中,并從相應的數組行中取出資料添加到記錄中。
|
參數
ArrayName Specifies指定數組名,該數組包含要複制到新記錄中的資料。指令将把數組中所有的行都添加到表中。
FOR lExpression 為數組中用于追加的記錄指定條件。在 lExpression 條件表達式中必須包含目标字段名。在資料中的行追加到表中的記錄之前,先檢查與 lExpression 中指定的目标字段對應的數組元素是否滿足 lExpression中的條件。如果數組元素滿足條件,則将記錄追加到表中。如果數組元素不滿足條件,這一數組行不追加到表中,并繼續檢查下一行。
FIELDS FieldList 指定隻有 FieldList 清單中的字段才從數組進行更新。清單中的第一個字段用數組第一個元素的内容更新,第二個字段用第二個元素更新,依次類推。
FIELDS LIKE Skeleton 指定從數組中更新與字段梗概 Skeleton 比對的字段。
FIELDS EXCEPT Skeleton 指定從數組中更新所有與字段梗概 Skeleton 不比對的字段。字段梗概 Skeleton 支援通配符。
例如,為了指定從數組更新所有以字母 A 和 P 開頭的字段,可以使用下面的語句:
|
LIKE 子句可以與 EXCEPT 子句組合使用:
|
APPEND FROM ARRAY 指令忽略 備注型、通用型 和 大二進制對象型(Blob) 字段。*NEW
如果表處于打開狀态并被共享使用,在追加記錄時,APPEND FROM ARRAY 指令将鎖定表頭。
如果數組是一維的,則 APPEND FROM ARRAY 隻在表中添加一條記錄。第一個數組元素的内容将填充到新添加記錄的第一個字段,第二個元素的内容将填充到記錄的第二個字段,依次類推。
如果一維數組元素的個數多于表字段數,則忽略多于的元素。如果表字段數多于數組元素的個數,多出的字段将初始化為預設的空值。下面是每種字段類型對應的預設空值:
字段類型 | 預設值 |
字元型 | 空格 |
貨币型 | |
日期型 | 空日期 (如 CTOD("")) |
日期時間型 | 空的日期時間 (如 CTOT("")) |
雙精度型 | |
浮點型 | |
整型 | |
邏輯型 | 假 (.F.) |
備注型 | 空 (無内容) |
數值型 |
如果數組是二維的, APPEND FROM ARRAY 為數組中的每一行在表中添加一條新記錄。例如,如果數組有4行,則在表中追加4條新記錄。
數組中第一列的内容填充到新添加記錄的第一個字段,第二列内容填充到新添加記錄的第二個字段,依次類推。例如,如果數組有4行3列,數組中的第一列元素分别填充到4條新記錄的第一個字段。
如果二維數組的列數多于表中的字段數,多于的列将被忽略。如果表字段數多于數組列數,多出的字段将初始化為空值。
如果資料元素資料與相應的字段資料類型相容,那麼即使相應的數組元素的資料類型與字段資料類型不比對,APPEND FROM ARRAY 也能夠填充該字段。如果資料不相容,字段将被初始化為空值。
如果目标表中使用了自動增量(autoincrement),當 SET AUTOINCERROR 為 ON時則APPEND FROM ARRAY 會失敗,除非 FIELDS 選項中省略了 AUTOINC 列。設定 AUTOINCERROR 為 OFF 或用 CURSORSETPROP( ) 關閉了目标表的自動增量(autoincrement) ,則允許 APPEND FROM ARRAY 取得成功。目标表的自動增量(autoincrementing)字段 或按指定值遞增的字段,和源表中的值不适用。*NEW
本示例建立一張表,然後使用 APPEND FROM ARRAY 指令向新表中添加一條記錄
|