⑴ foxpro輸入了命令怎麼執行
在命令窗口中輸入命令,回車後命令即被執行。
⑵ foxpro修改命令怎麼寫,
首先你的tjh欄位的類型必須是字元型才能在前面加上"0",如果不是字元型你說需要用modi stru命令打開表設計修改成字元型。然後用repl命令修改內容:
repl all tjh with "0"+tjh
⑶ visual foxpro提供了幾種查看記錄的命令
1、use 表
borwse
打開表編輯
2、use 表
list
顯示表數據
3、select * from 表
Visual Foxpro中顯示記錄的兩個命令
【命令格式一】LIST [范圍] [FIELDS 欄位列表] [FOR 條件] [OFF]
【命令功能】滾屏顯示記錄,無任何選項時,顯示所有記錄,記錄指針指向文件尾。
【命令格式二】DISPLAY [范圍] [FIELDS 欄位列表] [FOR 條件] [OFF]
【命令功能】分屏顯示記錄,無任何選項時,只顯示當前記錄,記錄指針不動
⑷ foxpro中的命令
一列全部加上一個『「收」
repl all 列名 with alltrim(列名)+'收'
並將空格一下全部去掉
repl all 列名 with alltrim(列名)
alltrim()函數的作用是去掉字元串前後的空格.
⑸ foxpro最基本的命令及其使用方法。
? 在下一行顯示表達式串
?? 在當前行顯示表達式串
@... 將數據按用戶設定的格式顯示在屏幕上或在列印機上列印
ACCEPT 把一個字元串賦給內存變數
APPEND 給資料庫文件追加記錄
APPEND FROM 從其它庫文件將記錄添加到資料庫文件中
AVERAGE 計算數值表達式的算術平均值
BROWSE 全屏幕顯示和編輯資料庫記錄
CALL 運行內存中的二進制文件
CANCEL 終止程序執行,返回圓點提示符
CASE 在多重選擇語句中,指定一個條件
CHANGE 對資料庫中的指定欄位和記錄進行編輯
CLEAR 清潔屏幕,將游標移動到屏幕左上角
CLEAR ALL 關閉所有打開的文件,釋放所有內存變數,選擇1號工作區
CLEAR FIELDS 清除用SET FIELDS TO命令建立的欄位名表
CLEAR GETS 從全屏幕READ中釋放任何當前GET語句的變數
CLEAR MEMORY 清除當前所有內存變數
CLEAR PROGRAM 清除程序緩沖區
CLEAR TYPEAHEAD 清除鍵盤緩沖區
CLOSE 關閉指定類型文件
CONTINUE 把記錄指針指到下一個滿足LOCATE命令給定條件的記錄,在LOCATE命令後出現。無LOCATE則出錯
COPY TO 將使用的資料庫文件復制另一個庫文件或文本文件
COPY FILE 復制任何類型的文件
COPY STRUCTURE EXTENED TO 當前庫文件的結構作為記錄,建立一個新的庫文件
COPY STRUCTURE TO 將正在使用的庫文件的結構復制到目的庫文件中
COUNT 計算給定范圍內指定記錄的個數
CREATE 定義一個新資料庫文件結構並將其登記到目錄中
CREATE FROM 根據庫結構文件建立一個新的庫文件
CREATE LABEL 建立並編輯一個標簽格式文件
CREATE REPORT 建立賓編輯一個報表格式文件
DELETE 給指定的記錄加上刪除標記
DELETE FILE 刪除一個未打開的文件
DIMENSION 定義內存變數數組
DIR 或 DIRECTORY 列出指定磁碟上的文件目錄
DISPLAY 顯示一個打開的庫文件的記錄和欄位DISPLAY FILES 查閱磁碟上的文件
DISPLAY HISTORY 查閱執行過的命令
DISPLAY MEMORY 分頁顯示當前的內存變數
DISPLAY STATUS 顯示系統狀態和系統參數
DISPLAY STRUCTURE 顯示當前書庫文件的結構
DO 執行FoxBase程序
DO CASE 程序中多重判斷開始的標志
DO WHILE 程序中一個循環開始的標志
EDIT 編輯資料庫欄位的內容
EJECT 使列印機換頁的命令,將PROW()函數和PCOL()函數值置為0
ELSE 在IF...ENDIF結構中提供另一個條件選擇路線
ENDCASE 終止多重判斷
ENDDO 程序中一個循環體結束的標志
ENDIF 判斷體IF...ENDIF結構結束標志
ERASE 從目錄中刪除指定文件
EXIT 在循環體內執行退出循環的命令
FIND 將記錄指針移動到第一個含有與給定字元串一致的索引關鍵字的記錄上
FLUSH 清除所有的磁碟存取緩沖區
GATHER FROM 將數組元素的值賦予資料庫的當前記錄中
GO/GOTO 將記錄指針移動到指定的記錄號
HELP 激活幫助菜單,解釋FoxBASE+的命令
IF 在IF...ENDIF結構中指定判斷條件
INDEX 根據指定的關鍵詞生成索引文件
INPUT 接受鍵盤鍵入的一個表達式並賦予指定的內存變數
INSERT 在指定的位置插入一個記錄
JOIN 從兩個資料庫文件中把指定的記錄和欄位組合成另一個庫文件
KEYBOARD 將字元串填入鍵盤緩沖區
LABEL FROM 用指定的標簽格式文件列印標簽
LIST 列出資料庫文件的記錄和欄位
LIST FILES 列出磁碟當前目錄下的文件
LIST HISTORY 列出執行過的命令
LIST MEMORY 列出當前內存變數及其值
LIST STATUS 列出當前系統狀態和系統參數
LIST STRUCTURE 列出當前使用的資料庫的庫結構
LOAD 將匯編語言程序從磁碟上調入內存 LOCATE 將記錄指針移動到對給定條件為真的記錄上
LOOP 跳過循環體內LOOP與ENDDO之間的所有語句,返回到循環體首行
MENU TO 激活一組@...PROMPT命令定義的菜單
MODIFY COMMAND 進入FoxBASE+系統的字處理狀態,並編輯一個ASCII碼文本文件(如果指定文件名以.PRG為後綴,則編輯一個FoxBASE+命令文件)
MODIFY FILE 編輯一個一般的ASCII碼文本文件
MODIFY LABEL 建立並編輯一個標簽(.LBL)文件
MODIFY REPORT 建立並編輯一個報表格式文件(.FRM)文件
MODIFY STRUCTURE 修改當前使用的庫文件結構
NOTE/* 在命令文件(程序)中插入以行注釋(本行不被執行)
ON 根據指定條件轉移程序執行
OTHERWISE 在多重判斷(DO CASE)中指定除給定條件外的其它情況
PACK 徹底刪除加有刪除標記的記錄
PARAMETERS 指定子過程接受主過程傳遞來的參數所存放的內存變數
PRIVATE 定義內存變數的屬性為局部性質
PROCEDURE 一個子過程開始的標志
PUBLIC 定義內存變數為全局性質
QUIT 關閉所有文件並退出FoxBASE+
READ 激活GET語句,並正是接受在GET語句中輸入的數據
RECALL 恢復用DELETE加上刪除標記的記錄
REINDEX 重新建立正在使用的原有索引文件
RELEASE 清楚當前內存變數和匯編語言子程序
RENAME 修改文件名
REPLACE 用指定的數據替換資料庫欄位中原有的內容
REPORT FORM 顯示數據報表
RESTORE FROM 從內存變數文件(.MEM)中恢復內存變數
RESTORE SCREEN 裝載原來存儲過的屏幕映象
RESUME 使暫停的程序從暫停的斷點繼續執行
RETRY 從當前執行的子程序返回調用程序,並從原調用行重新執行
RETURN 結束子程序,返回調用程序
RUN/! 在FoxBASE+中執行一個操作系統程序
SAVE TO 把當前內存變數及其值存入指定的磁碟文件(.MEM)
SAVE SCREEN 將當前屏幕顯示內容存儲在指定的內存變數中
SCATTER 將當前資料庫文件中的數據移到指定的數組中
SEEK 將記錄指針移到第一個含有與指定表達式相符的索引關鍵字的記錄
SELECT 選擇一個工作區來源:考試大-計算機二級 SET 設置FoxBASE+控制參數
SET ALTERNATE ON/OFF 設置傳送/不傳送輸出到一個文件中
SET ALTERNATE TO 建立一個存放輸出的文件
SET BELL ON/OFF 設置輸入數據時響鈴/不響鈴
SET CARRY ON/OFF 設置最後一個記錄復制/不復制到添加的記錄中
SET CENTURY ON/OFF 設置日期型變數要/不要世紀前綴
SET CLEAR ON/OFF 設置屏幕信息能/不能被清除
SET COLOR ON/OFF 設置彩色/單色顯示
SET COLOR TO 設置屏幕顯示色彩
SET CONFIRM ON/OFF 設置在全屏幕編輯方式中,要求/不要求自動跳到下一個欄位
SET CONSOLE ON/OFF 設置將輸出傳送/不傳送到屏幕
SET DATE 設置日期表達式的格式
SET DEBUG ON/OFF 設置傳送/不傳送ECHO的輸出到列印機上
SET DECIMALS TO 設置計算結果需要顯示的小數位數
SET DEFAULT TO 設置默認的驅動器
SET DELETED ON/OFF 設置隱藏/顯示有刪除標記的記錄
SET DELIMITER TO 為全屏幕顯示欄位和變數設置定界符
SET DELIMITER ON/OFF 選擇可選的定界符
SET DEVICE TO SCREEN/PRINT 將@...SAY命令的結果傳送到屏幕/列印機
SET DOHISTORY ON/OFF 設置存/不存命令文件中的命令到歷史記錄中
SET ECHO ON/OFF 命令行回送到屏幕或列印機
SET ESCAPE ON/OFF 允許ESCAPE退出/繼續命令文件的執行
SET EXACT ON/OFF 在字元串的比較中,要求/不要求准確一致
SET EXACLUSIVE ON/OFF 設置資料庫文件的共享
SET FIELDS ON/OFF 設置當前打開的資料庫中部分/全部欄位為可用
SET FIELDS TO 指定打開的資料庫中可被訪問的欄位
SET FILTER TO 在操作中將資料庫中所有不滿足給定條件的記錄排除
SET FIXED ON/OFF 固定/不固定顯示的小數位數
SET FORMAT TO 打開指定的格式文件
SET function..設置F1-F9功能鍵值
SET HEADING ON/OFF 設置LIST或DISPLAY時,顯示/不顯示欄位名
SET HELP ON/OFF 確定在出現錯誤時,是否給用戶提示
SET HISTORY ON/OFF 決定是/否把命令存儲起來以便重新調用
SET HISTORY TO 決定顯示歷史命令的數目
SET INDEX TO 打開指定的索引文件來源:考試大-計算機 SET INTENSITY ON/OFF 對全屏幕操作實行/不實行反轉顯示
SET MARGIN TO 設置列印機左頁邊
SET MEMOWIDTH TO 定義備注型欄位輸出寬度和REPORT命令隱含寬度
SET MENU ON/OFF 確定在全屏幕操作中是否顯示菜單
SET MESSAGE TO 定義菜單中屏幕底行顯示的字元串
SET ODOMETER TO 改變TALK命令響應間隔時間
SET ORDER TO 指定索引文件列表中的索引文件
SET PATH TO 為文件檢索指定路徑
SET PRINT ON/OFF 傳送/不傳送輸出數據到列印機
SET PRINTER TO 把列印的數據輸送到另一種設備或一個文件中
SET PROCEDURE TO 打開指定的過程文件
SET RELATION TO 根據一個關鍵字表達式連接兩個資料庫文件
SET SAFETY ON/OFF 設置保護,在重寫文件時提示用戶確認
SET SCOREBORAD ON/OFF 設置是/否在屏幕的第0行上顯示FoxBASE+的狀態信息
SET STATUS ON/OFF 控制是/否顯示狀態行
SET STEP ON/OFF 每當執行完一條命令後,暫停/不暫停程序的執行
SET TALK ON/OFF 是否將命令執行的結果傳送到屏幕上
SET TYPEAHEAD TO 設置鍵盤緩沖區的大小
SET UNIQUE ON/OFF 在索引文件中出現相同關鍵字的第一個/所有記錄
SKIP 以當前記錄指針為准,前後移動指針
SORT TO 根據資料庫文件的一個欄位或多個欄位產生一個排序的哭文件
STORE 賦值語句
SUM 計算並顯示資料庫記錄的一個表達式在某范圍內的和
SUSPEND 暫停(掛起)程序的執行
TEXT...ENDTEXT 在屏幕上當前游標位置顯示...的文本數據塊
TOTAL TO 對預先已排序的文件產生一個具有總計的摘要文件
TYPE 顯示ASCII碼文件的內容
UNLOCK 解除當前庫文件對記錄和文件的加鎖操作
UPDATE 允許對一個資料庫進行成批修改
USE 帶文件名的USE命令打開這個資料庫文件。無文件名時,關閉當前操作的資料庫文件
WAIT 暫停程序執行,按任意鍵繼續執行
ZAP 刪除當前資料庫文件的所有記錄(不可恢復)來源:考
⑹ 請大家告訴我些foxpro的基本指令
ALL:
命令對表中所有記錄起作用,即執行時從首記錄到末記錄,最記錄指針停在資料庫的末尾。
NEXT <expN>
命令作用於從當前記錄開始到當前記錄後<expN>條記錄為止的范圍內的記錄,最後記錄指針指向作用范圍內的最後一條記錄處。NEXT 1表示僅作用於當前記錄。
Record <expN>
命令作用於記錄號為<expN>的記錄。
TEST
命令作用范圍從當前記錄開始到表的最後一個記錄為止
命令中的FOR子句只作用於滿足條件的記錄。
一、基本命令
1. 打開和關閉數據表
USE [<數據表名>] 當省略選項時為關閉當前數據表
CLOSE ALL 關閉所有數據表
2. 選擇當前工作區
SELECT <工作區號|數據表名|0>
功能:選擇當前工作區。可以直接選擇工作區號,也可通過指定其中已經打開的數據表別名來指定工作區。
SELECT 0 是選擇當前未使用的最低編號的工作區
3. 增加記錄
APPEND BLANK 在當前表的尾部追加一個空白記錄
INSERT BLANK 在當前表的當前記錄之後插入一條空白記錄
INSERT BLANK BEFORE 在當前表的當前記錄之前插入一條空白記錄
注意:在表建立索引後,INSERT的功能與APPEND相同
4. 替換欄位的值
REPLACE [范圍] <欄位1> WITH <表達式1>[, <欄位2> WITH <表達式2>, ...<欄位n> WITH <表達式n>] [FOR <expL>]
功能:計算表達式的值,並填入指定欄位,當范圍和條件選項省略時只對當前記錄操作。
5. 刪除記錄
DELETE [范圍] [FOR 條件]
功能:對記錄加刪除標記(即邏輯刪除),當范圍和條件選項省略時只對當前記錄操作。
RECALL [范圍] [FOR 條件]
功能:對記錄去除刪除標記(即恢復刪除),當范圍和條件選項省略時只對當前記錄操作。
PACK
功能:刪除帶有刪除標記的記錄
ZAP
功能:物理刪除當前表所有記錄
6. 建立索引與選擇主控索引
INDEX ON <關鍵字表達式> TAG <索引標識符> [DESCENDING]
功能:對當前表按<關鍵字表達式>建立結構復合索引,索引文件名與表名相同,擴展名默認為CDX。DESCENDING選項為按關鍵字降序排列,默認為升序。
SET ORDER TO TAG <索引標識符>
功能:在結構復合索引文件打開後,指定主控索引標識符。
7. 記錄指針定位
GO BOTTOM | TOP | <expN>
功能:移動記錄指針直接指定記錄。BOTTOM為指向末記錄,TOP為指向首記錄,<expN>為指向記錄號為<expN>的記錄。
SKIP [expN]
功能:按expN的值,從當前位置出發移動記錄指針。當expN為正時向尾部方向移動expN條記錄,當expN為負時向首部方向移動expN條記錄,當expN為1時可以省略。
8. 查找
LOCATE [范圍] [FOR 條件]
功能:在數據表的指定范圍中搜索滿足條件的第一個記錄。搜索成功,記錄指針指向該記錄,並將FOUND()置為.T.;否則,記錄指針指數據表末尾,並將FOUND()置為.F.。<范圍>預設為ALL。
CONTINUE
功能:查找下一個滿足LOCATE命令指定條件的記錄,查找成功,將FOUND()置為.T.並將指針指向滿足條件的記錄;否則,記錄指針指數據表末尾,將FOUND()置為.F.。
9. 數據表復制
COPY TO <文件名> [范圍] [FIELDS <欄位名表>] [FOR 條件]
功能:把已打開的表內容復制到新的表中。<范圍>預設值為ALL。<欄位名表>規定了新表欄位,預設為全部欄位。
COPY STRUCTURE TO <文件名> [FIELDS <欄位名表>]
功能:把當前表的結構復制到新的表中。不復制記錄。<欄位名表>規定了新表欄位,預設為全部欄位。
10. 統計
COUNT [范圍] [FOR 條件] TO <內存變數>
功能:統計表中滿足條件的記錄個數,並存入指定的內存變數。<范圍>預設時為ALL
SUM [表達式表] [范圍] [FOR 條件] TO <內存變數表>
功能:統計表中全部的或指定數值欄位的值的和,並各個和存入指定的內存變數,內存就是的個數求和的數值表達式個數相同。<范圍>預設時為ALL
AVERAGE [表達式表] [范圍] [FOR 條件] TO <內存變數表>
功能:統計表中全部的或指定數值欄位的值的平均,並各個和存入指定的內存變數,內存就是的個數求和的數值表達式個數相同。<范圍>預設時為ALL
二、函數
1. 數學函數
ABS(expN)
功能:求數值表達式的絕對值。
INT(expN)
功能:對數值表達式expN取整數部分
ROUND(expN, Dec)
功能:對數值表達式expN精確到小數點後Dec位。
2. 字元函數
SUBSTR(expC, expN1, expN2)
功能:取字元串expC中從expN1開始的expN2個字元,若expN2省略,則從expN1開始一直取到最後。
TRIM(expC)
功能:取掉字元串expC的尾部空格。
ALLTRIM(expC)
功能:取掉字元串expC首尾的空格。
SPACE(expN)
功能:產生expN個空格。
UPPER(expC)
功能:將字元串expC轉換成大寫。
LOWER(expC)
功能:將字元串expC轉換成大寫。
expC1 $ expC2
功能:判斷字元串expC1是否在expC2中出現,若出現則值為.T.,否則為.F.。
3. 日期函數
DATE()
功能:獲取系統日期。
4. 類型轉換
VAL(expC)
功能:將數字字元值轉換成數值,如:VAL('123.45')的值為數值123.45
STR(expN [, 寬度 [, 小數位數]])
功能:將數值轉換成字元串,當小數位數省略時不帶小數,當寬度和小數位數都省略時寬度為10不帶小數。
DTOC(expD)
功能:將日期表達式expD轉換成字元表達式,格式與系統日期格式一致。
DTOS(expD)
功能:將日期表達式expD轉換成字元表達式,格式為YYYYMMDD,前4位為年份中間2位為月份最後2位為日。
CTOD(expC)
功能:將符合當前系統日期格式的字元串轉換成日期值。
5. 測試函數
FOUND()
功能:測試當前的查找(SEEK, LOCATE, CONTINUE)是否成功。查找成功函值為.T.否則為.F.。
EOF()
功能:測試當前記錄指針是否到了數據表的末尾。當在末尾時函數為.T.否則為.F.。
RECNO()
功能:返回當前記錄號。
⑺ Visual Foxpro 6.0的一些命令
建立表結構:create
修改表結構:modify structure
顯示表結構:Display structure in 表名
打開表:Use 表名
關閉表:use in 表名
追加記錄:append
記錄定位:locate for
記錄插入:insert
記錄修改:update
顯示記錄:display / list / brow
刪除記錄:delete for
1.顯示庫文件結構命令:
Display structure
2.用LIST 命令顯示第3-5這3個記錄:
go 3
list next 3
3.用DLST 命令顯示所以記錄
display all
4.顯示第4個記錄
list record 4
5.顯示職工工資大於220元的人的記錄
list all for 職工工資>220
6.刪除姓名為「劉剛」的記錄,先進行邏輯刪除,觀察顯示結果。再進行物理刪除,觀察結果。
delete all for allt(姓名)=="劉剛"
pack
7.在第四個記錄之後插入一個記錄!
go 4
insert
8.顯示最後三條記錄的姓名、職務、獎金,不顯示記錄號。
go recc() - 2
display 姓名,職務,獎金 rest off
1.顯示姓李的職工的姓名和職稱
display 姓名,職稱 all for left(姓名,2) = "李"
2.顯示年齡在20到35歲之間的男職工
display all for 年齡>=20 and 年齡<=35 and 性別 = "男"
3.顯示在76年7月1日以後的工作的職工
display all for 參加工作時間 >= ctod("1976-07-01")
4.顯示職工為工人,已婚的職工
display all for 職工="工人" and 婚否="已婚"
5.顯示職工號在86005與86009之間的女職工
display all for 工號>=86005 and 工號<=86009 and 性別="女"
6.將所有的未婚職工的名單列印出來。
display all for 婚否="未婚" to printer
⑻ visual foxpro 創建表的命令
create form是創建表單(窗口)命令
create table是創資料庫的表,但是後面要跟參數,加上相應表的欄位名字、類型與長度
create命令是創建表命令
⑼ visual foxpro查看命令
在VF中,你每操作一次,一般會相應在命令窗口自動生成一個相應的命令,你可以查看命令窗口。如果VF窗口中沒有出現命令窗口,你可以選擇菜單「窗口」/「命令窗口」就能看到了。
⑽ 誰能列表告訴我Visual FoxPro的一些常用命令
Visual FoxPro常用命令分類表
資料庫文件及記錄命令
ADD TABLE 在當前資料庫中添加一個自由表
APPEND 在表的末尾添加一個或多個新記錄
APPEND FROM ARRAY 由數組添加記錄到表中
APPEND FROM 從一個文件中讀入記錄,追加到當前表的尾部
APPEND GENERAL 從文件中導入OLE對象並將其放入通用欄位中
APPEND MEMO 將文本文件的內容復制到備注欄位中
APPEND PROCEDURES 將文本文件中的存儲過程追加到當前資料庫中
AVERAGE 計算數值表達式或欄位的算術平均值
BLANK 清除當前記錄中所有欄位的數據
BROWSE 打開瀏覽窗口,顯示當前或選定表的記錄
CALCULATE 對表中的欄位或包含欄位的表達式進行財務和統計操作
CHANGE 顯示要編輯的欄位
CLOSE 關閉各種類型的文件
CLOSE MEMO 關閉一個或多個備注編輯窗口
COMPILE DATABASE 編譯資料庫中的存儲過程
CONTINUE 繼續執行先前的LOCATE命令
COPY MEMO 復制當前記錄中的指定備注欄位的內容到文本文件
COPY PROCEDURES 將當前資料庫中』的存儲過程復制到文本文件
COPY STRUCTURE 用當前選擇的表結構創建一個新的空自由表
COPY STRUCTURE EXTENDED 創建新表,它的欄位包含當前選定表的結構信息
COPY TO ARRAY 將當前選定表中的數據復制到數組
COPY TO 用當前選定表的內容創建新文件
COUNT 統計表中記錄數目
CREATE 生成一個新的VisualFoxPro表
CREATE CONNECTION 創建一個命名連接並把它存儲在當前資料庫中
CREATE DATABASE 創建並打開一個資料庫
CREATE TRIGGER 創建表的刪除、插入或更新觸發器
CREATE VIEW 從VisualFoxPro環境創建視圖文件
DELETE 給要刪除的記錄做標記
DELETE CONNECTION 從當前資料庫中刪除一個命名連接
DELETE DATABASE 從磁碟上刪除資料庫
DELETE TRIGGER 從當前資料庫的表中刪除「刪除」、「插入」或「更新」觸發器│
DELETE VIEW 從當前資料庫中刪除一個SQL視圖
DISPLAY 在VisualFoxPro主窗口或用戶自定義窗口中顯示與當前表有關的信息
DISPLAY CONNECTIONS 顯示當前資料庫中與命名連接有關的信息
DISPLAY DATABASE 顯示有關當前資料庫的信息,或當前資料庫中的欄位、命名連接、表或視圖的信息
DISPLAY MEMORY 顯示內存變數和數組的當前內容
DISPLAY PROCEDURES 顯示當前資料庫中存儲過程的名稱
DISPLAY STRUCTURE 顯示一個表文件的結構
DISPLAY TABLES 顯示包含在當前資料庫中所有的表和表的信息
DISPLAY VIEWS 顯示當前資料庫中關於SQL視圖的信息以及SQL視圖是否基於本地或遠程表的信息
DROP TABLE 把一個表從資料庫中移出,並從磁碟中刪除它
DROP VIEW 從當前資料庫中刪除指定的SQL視圖
EDIT 顯示要編輯的欄位
FoxPro的命令結構一般由命令動詞、語句體和注釋幾部分構成。
如:LIST [范圍] [[FIELDS 欄位名列表] [FOR 條件][WHILE 條件] [OFF] [TO PRINT]
常用子句
范圍:表示記錄的執行范圍,可以是下面幾項其中之一:
ALL 表示全部記錄;
NEXT n 表示從當前記錄開始的以下n條記錄;
RECORD n 表示第n號記錄;
REST 表示從當前記錄到最後一條記錄。
FIELDS 欄位名表:用於指定操作的欄位,多個欄位時用逗號分隔。
FOR條件:對滿足條件的記錄進行操作。
WHILE 條件:當遇到第一個不滿足條件的記錄時,停止命令執行。
以下命令中,大寫的英文詞為關鍵詞,必須原樣照寫。
「常用子句」指以下幾個可選子句:
[范圍] [FIELDS 欄位名表] [FOR 條件] [WHILE 條件]
命令中的「列表」,指用「,」分隔的各項。如「欄位名列表」就是將各個欄位名用逗號分隔。
部分英文詞的意義:Databasename 數據名 tablename 數據表名 filename 文件名 Viewname 視圖名 arrayname 數組名
提示:加下劃線的為本課程要求掌握的命令。
一、資料庫的建立、打開、關閉和刪除
建立資料庫:
CREATE DATABASE [databasename|?]
從磁碟中刪除資料庫:
DELETE DATABASE databasename|?
打開資料庫:
OPEN DATABASE [EXCLUSIVE|SHARED][NOUPDATE]
打開資料庫設計器(允許用戶按交互方式編輯當前資料庫):
MODIFY DATABASE [databasename|?]
指定的資料庫databasename為當前資料庫。
指定當前的資料庫:
SET DATABASE TO [databasename]
Databasename必須為已經打開的資料庫。如果省略資料庫名稱databasename,則不指定當前資料庫(沒有當前資料庫)。
關閉資料庫:
CLOSE DATABASE [ALL]
關閉當前資料庫,如果帶ALL子句,則關閉所有打開的資料庫。
二、數據表和視圖的建立、打開、關閉和刪除
建立數據表(SQL命令):
CREATE TABLE | DBF tablename (Col_name1 Type1 [NOT NULL/NULL]
[{,Col_name2 Type2 [NOT NULL/NULL]}...])
table_name是所創建的數據表的名字。
Col_name1,Col_name2,...是表中列的名。
Type1, Type2...是相應列的數據類型(VFP的數據類型見表3-9)。
如果說明為NOT NULL,則列中不允許分配空值(這種情況下,列不能包含空值,如果插入空值,將返回錯誤信息)。
向當前打開的資料庫中添加數據表:
ADD TABLE tablename|?
從當前打開的資料庫中刪除數據表:
REMOVE TABLE tablename|? [DELETE]
如果包含DELETE子句,將從磁碟中刪除這個表文件,否則,只從資料庫中刪除,但文件仍保存在磁碟中。
在當前打開的資料庫中建立視圖:
CREATE SQL VIEW viewname AS SELECT ……
其中SELECT ……為SELECT語句。
執行這個語句時,如果沒有打開的資料庫,則建立獨立的視圖,這樣的視圖不能存儲。
從當前打開的資料庫中刪除視圖:
DELETE VIEW viewname
打開一個表:
USE tablename|? [IN 工作區號]
將當前數據表與另一數據表連接後建立一個新表:
JOIN WITH 工作區號|表別名 TO tablename FOR 條件 [FIELDS 欄位名表]
三、數據表和表結構的編輯、修改
打開瀏覽窗口(可在其中編輯數據表):
BROWSW(詳細格式見P. 114~116)
打開並修改數據表中的欄位:
(1) CHANGE [FIELDS 欄位名列表]
(2) EDIT [FIELDS 欄位名列表]
這兩個命令的功能相似,可選子句較多(詳見手冊)。
數據表改名:
RENAME TABLE tablename1 TO tablename2
其中數據表tablename1必須存在且未打開。
視圖改名:
RENAME VIEW viewname1 TO viewname2
其中數據表tablename1必須存在且未打開。
修改數據表結構(SQL命令):
ALTER TABLE tablename ;
ADD 欄位名 Type [NULL | NOT NULL]
[,欄位名 Type [NULL | NOT NULL] ;
[ALTER COLUMN欄位名Type {NULL | NOT NULL}];
[{,欄位名Type NULL | NOT NULL}...] ;
[DROP欄位名[,欄位名[, ...]]
將當前表與另一表之間建立關聯:
SET RELATION TO [表達式1 INTO 工作區號1 | 表別名1];
[, 表達式2 INTO 工作區號2 | 表別名2] [, ...]
建立關聯的兩個表必須事先已按關聯表達式進行索引排序。
在當前表與另一表之間建立一對多關聯:
SET SKIP TO表別名1[, 表別名2]
消除當前表與另一表之間的關聯:
SET RELATION OFF INTO 工作區號 | 表別名
四、數據表中數據操作(查詢、插入、刪除和修改等)
數據查詢SELECT語句(SQL命令)
格式見教材的有關章節。這是本課程的重點內容,必須很好地掌握。
更改數據表中的記錄:
REPLACE 欄位1 WITH 表達式1[ADDITIVE];
[,< [,<欄位2> WITH <表達式2>[ADDITIVE],…];
[FOR 條件1][WHILE條件2]
其中的ADDITIVE子句適用於備注欄位,表示將表達式的值加在欄位的末尾。
用內存數組的值更新數據表中的記錄:
REPLACE FROM ARRAY數組名 [FIELDS 欄位名列表][常用子句]
用新的值更新表中的記錄(SQL命令):
UPDATE [databasename!]tablename;
SET Column_1=Expression1 [{Column_2=expression2}...] ;
[WHERE Condition]
用一個表中的數據更新當前指定工作區中打開的表:
UPDATE ON fieldname FROM filename;
REPLACE fieldname1 WITH expr1
[, fieldname2 WITH expr2 [, ...]]
給記錄加刪除標記(SQL命令):
DELETE FROM [databasename!]tablename;
[WHERE 條件]
給記錄加刪除標記:
DELETE [范圍] [FOR 條件] [WHILE 條件];
[IN 工作區號|表別名]
永久刪除加了刪除標記的記錄:
PACK
永久刪除打開的資料庫中加了刪除標記的記錄:
PACK DATABASE
去掉刪除標記(恢復)
RECALL [常用子句]
刪除一個表中所有記錄(保留表的結構):
ZAP [IN tablename|alias]
為數據表文件追加記錄:
APPEND [BLANK][IN 工作區號|別名]
從另一個文件中提取數據添加到當前數據表的尾部:
APPEND FROM filename|? [FIELDS 欄位名列表][ FOR 條件]
其中filename所指定的文件可以是數據表、EXCEL電子表格、文本文件等,如果不是數據表,需要其它子句指定格式(詳見手冊)。
用內存數組的值添加到當前數據表的尾部:
APPEND FROM ARRAY arrayname [ FOR 條件][FIELDS欄位名列表]
數據中的一行對應一個新記錄,一列對應一個欄位。
從一個文件輸入一個OLE對象放入一個通用(general)欄位 :
APPEND GENERAL 通用欄位名 [FROM filename]
如果省略子句FROM filename,則將指定的欄位清空。
將一個文本文件的內容拷貝到一個備注欄位 :
APPEND MEMO 備注欄位名 [FROM filename][OVERWRITE]
如果省略子句FROM filename,則將指定的欄位清空。
插入新記錄(在當前記錄之前或後插入):
INSERT [BLANK] [BEFORE]
如不省略BLANK,則插入一個空白記錄,且不顯示輸入窗口。
在表中插入新記錄並賦值(SQL命令):
INSERT INTO tablename [(欄位1 [, 欄位2, ...])]VALUES (eExpression1 [, eExpression2, ...])
或
INSERT INTO tablename FROM ARRAY ArrayName | FROM MEMVAR
如帶有FROM MEMVAR子句,則用同名的內存變數給欄位賦值。
清除當前記錄中欄位的數據:
BLANK [常用子句]
移動記錄指針:
SKIP [n] [IN 工作區號|表別名]
五、文件管理(文件和文件夾的復制、創建和刪除)
從當前表復制出表或其它類型的文件(表須打開)
COPY TO filename [FIELDS 欄位名列表] [常用子句] [其它子句]
如果沒有指定類型,則復制一個與當前的表相同的數據表。
復製表的結構
COPY STRUCTURE TO filename [FIELDS欄位名列表]
復制任何文件:
COPY FILE 源文件 TO 目的文件
如果用此命令復製表,表須關閉
從磁碟上刪除任意文件:
(1)ERASE filename|?
(2)DELETE FILE [filename|?]
任意文件改名(或文件移動到另一文件夾):
RENAME filename1 TO filename2
其中filename1和filename2都可以包含路徑。如二者不在同一文件夾,則將filename1移動到filename2所在的文件夾。
顯示一個文件夾中的文件信息:
DIR | DIRECTORY [ON drive]
從磁碟上刪除一個文件夾:
RD | REDIR 文件夾名
在磁碟上建立一個文件夾:
MD | MKDIR文件夾名
六、數據的復制與傳送
單個記錄與數組間的數據傳送
當前記錄 → 數組或內存變數:
SCATTER [FIELDS欄位名列表][MEMO]TO 數組名 [BLANK] | MEMVAR [BLANK]
其中[BLANK]表示建立一個空元素的數組。如果用MEMVAR子句,則表示將各欄位的值復制到同名同類型的內存變數。
如果包含MEMO子句,則備注欄位一起復制。
數組或內存變數 → 當前記錄
GATHER FROM 數組名 | MEMVAR [FILEDS欄位名列表] [MEMO]
用同名的內存變數或數組中的第一行置換當前記錄,如果數組為多行的二維數組,也只用第一行。
成批記錄與數組間的數據傳送
表 → 數組:
COPY TO ARRAY arrayname [常用子句]
數組 → 表:
(1) APPEND FROM ARRAY arrayname [ FOR 條件][FIELDS欄位名列表]
用內存數組的值加在數據表的尾部,數據中的一行對應一個新記錄,一列對應一個欄位。
(2) REPLACE FROM ARRAY數組名 [常用子句]
用內存數組的值更新數據表中符合條件的記錄。
查詢結果 → 數組:
SELECT …… INTO ARRAY arrayname
將SQL SELECT語句的查詢結果傳給數組arrayname。這里「SELECT ……」可為各種形式的SELECT查詢語句。
給內存變數賦值:
STORE 表達式 TO 變數名
或
變數名=表達式
七、排序與索引
將當前表排序後建立一個新數據表:
SORT TO 文件名 ON 欄位名1 [/A | /D] ;
[/C] [ 欄位名2 [/A | /D] [/C] ...];
[ASCENDING | DESCENDING] [常用子句];
建立單索引文件:
INDEX ON 表達式 TO 單索引文件名;
[FOR<條件>] [UNIQUE] [COMPACT];
[ASCENDING][DESCENDING][ADDITIVE]
建立復合索引文件:
INDEX ON 表達式 TO TAG 索引名 [OF 復合索引文件名];
[FOR 條件] [UNIQUE|CANDIDATE];
[ASCENDING][DESCENDING][ADDITIVE]
使用索引文件:
打開表時將索引文件一並打開,USE命令帶INDEX子句:
USE tablename|? [IN 工作區號][INDEX 索引文件名列表|?]
給當前表打開一個或多個索引文件:
SET INDEX TO〔索引文件名列表|?〕;
[ORDER 索引文件名序號|索引文件名|[TAG]索引名 [OF 復合索引文件名] ;
[ASCENDING][DESCENDING]〕
指定字元欄位在排序或索引時的整理系列:
SET COLLATE TO 整理系列
對於漢字字元串,「整理系列」可以是「Machine」、「PinYin」或「Stroke」三者之一(必須帶引號),分別表示按機器碼、拼音和筆劃排序。
指定當前表中的控制索引文件或標記:
SET ORDER TO;
[索引文件名序號|索引文件名|[TAG]索引名 [OF 復合索引文件名];
[IN 工作區號|表別名];
[ASCENDING][DESCENDING]
刪除索引
DELETE TAG ALL [OF 復合索引文件名]
DELETE TAG 索引標識1 [OF 復合索引文件名1];
[,索引標識2 [OF 復合索引文件名2]]…
八、查找和定位
順序查找當前表中滿足條件的第一條記錄:
LOCATE FOR 條件下[范圍][WHILE條件]
找到後將記錄指針定位在滿足條件的第一條記錄,且函數FOUND()的返回值為真。
在索引表中查找:
FIND cExpr
其中cExpr為字元串表達式。如果找到,則記錄指針定位在滿足條件的第一條記錄,且函數FOUND()的返回值為真;查找失敗時,FOUND()的返回值為假,記錄指針定位在文件尾。
在索引表中查找:
SEEK eExpr;
[ORDER 索引文件名序號|索引文件名|[TAG]索引名 [OF 復合索引文件名] ;
[ASCENDING][DESCENDING]〕;
[IN 工作區號|表別名]
如果找到,則記錄指針定位在滿足條件的第一條記錄,且為真;查找失敗時,FOUND()的返回值為假,記錄指針定位在文件尾。
繼續查找:
CONTINUE
用LOCATE、 FIND或 SEEK查找到一條記錄後,用CONTINUE繼續查找下一條。
用以上查找命令LOCATE、 FIND、SEEK和CONTINUE的查找結果,都可以通過函數FOUND()的返回值反映出來。
九、統計計算
統計表中的記錄數:
COUNT [范圍] [FOR 條件] [WHILE 條件][TO內存變數名]
統計滿足條件的記錄數,顯示記錄數或將結果賦給內存變數名。
求和:
SUM [表達式列表];
[范圍] [FOR 條件] [WHILE 條件][TO內存變數名|TO ARRAY 數組名]
求平均值:
AVERAGE [表達式列表];
[范圍] [FOR 條件] [WHILE 條件][TO內存變數名|TO ARRAY 數組名]
對當前表中數值型欄位進行分組求和:
TOTAL TO tablename ON 欄位名[常用子句]
其中tablename為存放結果的表文件名,欄位名為確定求和分組的欄位。
計算:
CALCULATE 表達式列表;
[范圍] [FOR 條件] [WHILE 條件][TO內存變數名|TO ARRAY 數組名]
其中表達式列表可以是如下函數的任意組合:
AVG(nExpr), CNT(), MAX(eExpr), MIN(eExpr), NPV(nExpr1, nExpr2,…),
STD(nExpr),SUM(nExpr),VAR(nExpr)
其中nExpr為數值表達式,eExpr為任意表達式。
十、程序控制
條件語句:
IF 條件 [THEN]
……
[ELSE]
[……]
ENDIF
多分支語句:
DO CASE
CASE 邏輯表達式1
……
CASE 邏輯表達式2
……
CASE 邏輯表達式n
……
[OTHERWISE]
……
ENDCASE
DO循環:
DO WHILE 條件
[LOOP]
……
[EXIT]
……
ENDDO
FOR循環
FOR 循環變數=初值 TO 終值 STEP 步長
……(中間可插入[LOOP]或[EXIT])
ENDFOR | NEXT
掃描循環(對一個表中滿足條件的記錄進行循環):
SCAN [范圍] [FOR 條件] [WHILE 條件]
……(中間可插入[LOOP]或[EXIT])
ENDSCAN
集合掃描循環
FOR EACH Var IN Group
Commands
[EXIT]
[LOOP]
ENDFOR | NEXT [Var]
十一、其它
定義數組:
DECLARE | DIMENSION 數組名(下標1,下標2,……)
定義過程:
PROCEDURE 過程名
PARAMETERS 參數表
……
RETURN [TO MASTER | TO 程序名]
定義函數:
FUNCTION 函數名
PARAMETERS 參數表
……
RETURN 表達式
調用一個子程序或過程
DO 子程序名 | 過程名 [IN 程序文件名][WITH 實在參數表]
定義公共變數:
PUBLIC 變數名列表
PUBLIC [ARRAY] 數組名1(行1,列1)[, 數組名2(行2,列2) [,…]]
定義私有變數
PRIVATE變數名列表
PRIVATE ALL[LIKE | EXCEPT 通配符]
定義局部變數
LOCAL 變數名列表
LOCAL [ARRAY] 數組名1(行1,列1)[, 數組名2(行2,列2) [,…]]
顯示各種信息:
LIST … (格式見有關手冊)
DISPLAY … (格式見有關手冊)
輸出提示信息:
WAIT [<提示信息>] [TO <內存變數>];
[WINDOW[AT[<行>,< 列>] [NOWAIT]];
[CLEAR|NOCLEAR];
[TIMEOUT<數值表達式>]
各種設置命令:
設置是否顯示日期中的世紀:
SET CENTURY ON | OFF
設置顯示的小數位數:
SET DECIMALS TO 小數位數
設置是否處理帶刪除標記的記錄:
SET DELETED ON | OFF
如果設置為ON,則不處理帶刪除標記的記錄。
設置是否顯示命令的結果:
SET TALK ON | OFF
設置文件的搜索路徑:
SET PATH TO 路徑
設置傳給子程序或自定義函數的參數是按值還是按引用方式傳遞:
SET UDFPARMS TO VALUE | REFERENCE
如設置為TO VALUE,表示按值傳遞。
執行一個外部命令或程序:
RUN 命令或程序
在指定的位置顯示或列印:
@行,列 SAY …
在指定的位置顯示表達式的值,並等待用戶輸入,將輸入值賦給一變數:
@行,列 SAY 表達式 GET 變數名 [DEFAULT 表達式]
READ
例:
@2,2 say "請輸入金額: " get nMoney default 50
Read
此例先在第2行、第2列顯示"請輸入金額: ",等待用戶輸入一個數值,將用戶輸入值賦給變數nMoney,如果用戶不輸入數值(直接按回車),則將50賦給nMoney。請注意在下一行不能漏掉「Read」。