append from 命令

append from 命令從一個檔案中讀入記錄,追加到當前表的尾部。

簡介

append from 命令從一個檔案中讀入記錄,追加到當前表的尾部。

語法

APPEND FROM FileName | ?[FIELDS FieldList][FOR lExpression][[TYPE] [DELIMITED [WITH delimiter | WITH BLANK | WITH TAB| WITH CHARACTER Delimiter]| DIF | FW2 | MOD | PDOX | RPD | SDF | SYLK | WK1 | WK3 | WKS | WR1 | WRK | CVS| XLS | XL5 [SHEET cSheetName] | XL8 [SHEET cSheetName]]][AS nCodePage]

參數描述

FileName

指定從哪個檔案中讀入記錄。如果給出的檔案名稱不包含擴展名,則將檔案默認為 Visual FoxPro 表,擴展名為 .DBF。如果檔案是 Visual FoxPro 表,無論SET DELETED 為何種設定,表中標記為刪除的記錄也將添加到當前表中。

?

顯示打開對話框,從中可以選擇從哪個表中讀入記錄。

FIELDS FieldList

指定添加哪些欄位數據。

FOR lExpression

為當前選定表中每一條 lExpression 為“真”(.T.) 的記錄追加新記錄,直至達到當前選定表的末尾。如果省略 FOR,則整個源檔案記錄都追加到當前表中。

TYPE

指定源檔案類型。如果指定的源檔案類型不是 Visual FoxPro 表,則必須指定檔案類型,但不必包括 TYPE 關鍵字。您可以從各種類型檔案(包括分隔 ASCII 文本檔案)中讀入信息添加到表中,在這些檔案中可以指定欄位分隔設定。

如果要追加的源檔案擴展名不是默認的擴展名,源檔案名稱必須包括檔案擴展名。例如,Microsoft Excel 工作表通常具有 .XLS 擴展名。如果要追加的 Microsoft Excel 工作表擴展名不是 .XLS,一定要指定擴展名。

注意 如果要追加的記錄來自工作表,工作表中的數據必須以主行序而非主列序存儲,這樣才能使追加的工作表數據符合表結構。

DELIMITED

指定源檔案為分隔數據檔案。分隔數據檔案是 ASCII 文本檔案,檔案中每條記錄以回車和換行符結尾。各欄位內容默認地由逗號分開,字元欄位值還需要用引號括上。例如:

"Smith",9999999,"TELEPHONE"

所有分隔數據檔案的擴展名默認為 .TXT 數據的格式。

如果日期格式正確,可以從分隔檔案中導入日期數據,日期的默認格式為 mm/dd/yy。您還可以選擇加入世紀信息。Visual FoxPro 導入的數據(如 12/25/95)不包含世紀信息,世紀信息的默認值為 20 世紀。日期分隔設定可以為任意非數值字元,但不能使用分隔檔案中欄位的分隔設定。

如果其他一些日期格式與 SET DATE 中可以使用的格式相匹配,Visual FoxPro 也可以導入這些格式的日期數據。若要導入非默認格式的日期,應在使用 APPEND FROM 前先發出 SET DATE 修改數據格式設定。要想檢查日期格式是否能成功地導入,可使用CTOD()函式。如果 CTOD()函式接收此日期值,則日期數據就能正確地導入。

DELIMITED WITH Delimiter

字元欄位由 Delimiter 標識,而非引號。

DELIMITED WITH BLANK

由空格符 (BLANK) 分隔欄位,而不是用逗號分隔欄位。

DELIMITED WITH TAB

各欄位由制表符 (TAB) 來分隔,而非逗號。

DELIMITED WITH CHARACTER Delimiter

欄位之間由給定的 Delimiter 分隔。如果 Delimite 是分號,套用引號括起來,因為引號在 Visual FoxPro 中有特殊的意義:一個命令分在多行中書寫時,用分號作為行的結束。Delimiter 可以是 BLANK 或 TAB 。

WITH Delimiter 子句可與 WITH CHARACTER 子句同時使用。例如,在下面的例子中,添加記錄的來源是一個文本檔案。該文本檔案中,字元欄位用下劃線 _ 標識,而欄位之間用星號 * 分割:

APPEND FROM mytxt.txt DELIMITED WITH _ ; WITH CHARACTER *

DIF

選用 DIF 可從 VisiCalc .dif(數據交換格式)檔案中導入數據。矢量(列)對應當前選定表的欄位,元組(行)對應表的記錄。DIF 檔案的默認擴展名為 .DIF。

FW2

選用 FW2 可從由 Framework II 創建的檔案中導入數據。FW2 檔案的默認擴展名為 .FW2。

MOD

選用 MOD 可從Microsoft Multiplan 4.01 版本的檔案中導入數據。MOD 檔案由 Microsoft Multiplan 4.01 版本創建,默認擴展名為 .MOD。

PDOX

選用 PDOX 可從 Paradox 3.5 版或 4.0 版資料庫檔案中導入數據。Paradox 檔案名稱的默認擴展名為 .DB。

RPD

選用 RPD 可從由 RapidFile 1.2 版本創建的檔案中導入數據。RapidFile 檔案名稱的默認擴展名為 .RPD。

SDF

選用 SDF 可從系統數據格式檔案中導入數據。SDF 檔案是一種 ASCII 文本檔案,記錄有固定長度,並且以回車和換行符結尾,各欄位不分隔開。檔案的默認擴展名為 .TXT。

SYLK

選用 SYLK 可從 SYLK(符號連結)交換格式檔案中導入數據。SYLK 檔案用於 Microsoft MultiPlan 中。SYLK 檔案中的列對應 Visual FoxPro 表的欄位,行對應表的記錄。SYLK 檔案沒有擴展名。

WK1

選用 WK1 可從 Lotus 1-2-3 2.x 版本的電子表格中導入數據。電子表格的每列為表的一個欄位,每行為表的一條記錄。Lotus 1-2-3 2.x 版本創建的電子表格擴展名為 WK1。

WK3

選用 WK3 可從 Lotus1-2-3 的電子表格中導入數據,電子表格的每列為表的一個欄位,每行為表的一條記錄。Lotus1-2-3 版本 3.X 創建的電子表格擴展名為 .WK3。

WKS

選用 WKS 可從 Lotus1-2-3 1-A 版的電子表格中導入數據。電子表格的每列為表的一個欄位,每行為表的一條記錄。Lotus1-2-3 1-A 版本創建的檔案擴展名為 .WKS。

WR1

選用 WR1 可從 Lotus symphony 1.1 或 1.2 版的電子表格中導入數據。電子表格的每列為表的一個欄位,每行為表的一條記錄。Symphony1.1 或 1.2 版創建的電子表格擴展名為 .WR1。

WRK

選用 WRK 可從 Lotus Symphony 1.0 版的電子表格中導入數據。電子表格中的每列為表的一個欄位,每行為表的一條記錄。Symphony 1.0 版創建的電子表格擴展名為 .WRK。

CVS

選用 CVS 可從一個各值用逗號分隔的檔案中導入數據。一個 CSV 檔案的第一行是欄位名;當導入該檔案時,會忽略這個欄位名。

XLS

選用 XLS 可從 Microsoft Excel 工作表中導入數據。工作表的每列為表的一個欄位,每行為表的一條記錄。由 Microsoft Excel 創建的工作表擴展名為 .XLS。

XL5

選用 XL5 可從 Microsoft Excel 5.0 版中導入數據。工作表的每列為表的一個欄位,每行為表的一條記錄。工作表檔案的擴展名為 .XLS。

如果省略 SHEET 子句,會導入 Sheet1 中的數據。為了導入特定工作表中的數據,需要包含 SHEET 關鍵字,並且使用 cSheetName 指定工作表的名稱。

XL8

包含 XL8 快導入 Microsoft Excel 97 的數據。工作表的列變成表中的欄位;工作表的行變成表中的記錄。在 Microsoft Excel 中創建的工作表檔案的擴展名是 .xls。

如果省略 SHEET 子句,會導入 Sheet1 中的數據。為了導入特定工作表中的數據,需要包含 SHEET 關鍵字,並且使用 cSheetName 指定工作表的名稱。

AS nCodePage

指定源表或源檔案的代碼頁。Visual FoxPro 將複製源表或源檔案的內容,並在複製時自動把數據轉換到當前表的代碼頁中。

如果指定的 nCodePage 值無法使用,Visual FoxPro 將產生一條錯誤信息。您可以用GETCP()函式顯示代碼頁對話框,在對話框中可以為追加的表或檔案指定代碼頁。如果省略 AS nCodePage 子句,並且 Visual FoxPro 不能判定源表或檔案的代碼頁,Visual FoxPro 將複製源表或檔案內容,並在複製數據的過程中,自動將數據轉換到當前的 Visual FoxPro 代碼頁中。如果 SET CPDIALOG 為 ON,當前選定工作區中的表以代碼頁標記。如果要從沒有代碼頁標記的表中讀入數據並添加到表中時,將顯示代碼頁對話框,您可以在其中選擇表的代碼頁。當前的 Visual FoxPro 代碼頁可以由CPCURRENT()函式設定。

如果省略 AS nCodePage 子句,並且 Visual FoxPro 可以確定追加記錄的表或檔案的代碼頁,Visual FoxPro 將複製表或檔案的內容,並在複製數據的過程中,自動將數據轉換到當前選定表的代碼頁中。

如果 nCodePage 為零,Visual FoxPro 認為需追加記錄的表和檔案的代碼頁與當前選定表的代碼頁相同,並且不進行代碼頁的轉換。

說明

如果從其中追加數據的檔案是 Visual FoxPro 表或在 FoxPro 早期版本中創建的表,其擴展名為 .DBF。如果其擴展名不是 .DBF,您必須指定擴展名。如果檔案不是 VisualFoxPro 表或 FoxPro 早期版本創建的表,還必須指定檔案的類型。

在從 dBASE IV 或 DBASE V 創建的包含備註欄位的表中追加記錄前,您必須先用USE 命令在 Visual FoxPro 中打開此表,當提示信息詢問您是否要轉換檔案時,請選擇“是”。

如果從 FoxPro 早期版本的表或 Visual FoxPro 表中讀入記錄,此表可以在另一工作區打開。對於源表中有刪除標記的記錄,一旦添加到表中,將會去掉刪除標記。

使用 DBF( )函式可以從一個唯讀的臨時表追加數據,該臨時表是使用 SELECT - SQL命令創建的。可象下例這樣在 DBF()函式中包含臨時表的名稱∶

APPEND FROM DBF('’)

示例

以下示例用於打開表 customer,將其結構複製到表 backup 中,並且打開表 backup。然後 visual foxpro 將 customer 表中滿足 'finland' 的記錄追加到表 backup 中。這些記錄然後又被複製到一個新的分隔檔案 temp.txt 中。

close databasesopen database (home( ) + 'samples\data\testdata')use customer && 打開 customer 表copy structure to backupuse backupappend from customer for country = 'finland'copy to temp type delimitedmodify file temp.txtusedelete file backup.dbfdelete file temp.txt

相關詞條

相關搜尋

熱門詞條

聯絡我們