A. 關於VF的一些命令
VF命令一覽表:
一、命令
1.use 表名 打開表
2.List 顯示表記錄,但不能修改
3.browse 瀏覽表記錄,可以修改
4.display 顯示記錄指針指向的記錄
5.append 追加記錄
6.append blank 追加空白記錄
7.insert blank 插入空白記錄
8.delete 邏輯刪除記錄,記錄前出現星號
9.pack 物理刪除,將邏輯刪除的記錄徹底刪除
10.recall 記錄恢復
11.zap 刪除表裡的所有記錄
12.go n 指向第n條記錄
13.go top 指向第一條記錄
14.go bottom 指向最後一條記錄
15.skip n 往下跳n條記錄
16.skip -n 往上跳n條記錄
17.? 從屏幕的下一行的第一列起顯示結果
18.? ? 從當前行當前列起顯示結果
19.use sb to sb() 復制sb表給sb()表
20.recno() 記錄號函數
21.bof() 上溢出
22.eof() 下溢出
23.dimension x(4) 定義數組x,裡面有四個元素,其中每個元素的默認值為.F. declare和dimension 相同
24.replace 替換
25.add 表示增加欄位
26.distinct 不重復記錄
27.error 錯誤
28.continue
繼續
29.else if 否則
30.column 列
31.input 顯示數值
32.accept 顯示字元串
33.wait 是彈出的一個信息框
34.drop 刪除欄位或刪除表
35.otherwise 其它情況
36.check 規則
37.cursor 臨時表
38.build 連編
二、VF里文件類型
1.項目 .pjx project 2.資料庫 .dbc database
3.表 .dbf table 4.菜單 .mnx .mpr menu
5.程序 .prg 6.表單 .scx form
7.報表 .frx report 8.查詢 .qpr query
9.視圖 .vue view 10.文件 .txt
11.備注型文件 .fpt
三、例題
1.creat table student(學號 c(6),姓名c(8),性別c(2),年齡n(2)) 創建學生表
2.insert into student values("001","張三","男",20) 插入一條學生記錄
3.alter table student alter 學號 c(8) 將學號欄位的寬度改為8
4.alter table student rename 學號 to 學生編號 將學號欄位重命名為學生編號
5.alter table student drop 年齡 將年齡欄位刪除
6.alter table student add 所在院系c(10) 為student表增加一個欄位
7.select *from student into table xusheng 將表student復制給表xuesheng
8.update student set 成績=成績+10 where 性別="男" 將男生的成績提高10分
9.delete from student where 性別"女" 冊除所有女生的記錄
10.alter table student alter 學號 set check left(學號,2="00")
四、創建、運行與修改
1.create database 123 創建資料庫123
modify database 123 修改資料庫123 (注意:alter在SQL中修改表結構)
2.modify command 123 修改程序123
do 123 運行程序123
3.create form 123 創建表單123
modify form 123 修改表單123
do form123 運行表單123
4.create menu 123 創建菜單123
modify menu 123 修改菜單123
do 123.mpr 運得菜單123
5.modify query 123 修改查詢123
do 123.qpr 運得查詢123
6.modify report 123 修改報表123
report form 123 運行報表123
7.drop view 123 刪除視圖123
create view 123 創建視圖123 (打開視圖用use)
五、排序
1.sort to nl on 年齡 按年齡升序排列,產生一個新表nl
2.sort to cj on 成績/d 按成績降序排列,產生一個新表cj
六、索引
1.index on 姓名 tag xm //按姓名升序建立普通索引,索引標識為xm//
2.index on 性別 tag xb //按性別升序建立普通索引,索引標識為xb//
3.index on 成績 tag cj descending //按成績降序建立普通索引,索引標識為cj//
4.index on 性別 tag xb1 unique(唯一索引) //按性別升序建立唯一索引,索引標識為xb1//
5.index on 年齡 tag nl candidate //按年齡升序建立候選索引,索引標識為nl//
6.index on 性別+str(成績) tag xbcj //按性別升序,如性別相同按成績升序建立普通索引,索引標識為xbcj//
7.index on 性別+str(成績) tag xbcj1 descending //按性別降序,如性別相同按成績降序建立普通索引,索引標識為xbcj1//
8.index on 年齡-成績/1000000 tag nlcj //按年齡升序,如年齡相同按成績降序建立普通索引,索引標識為nlcj//
9.index on 年齡-成績/1000000 tag nlcj1 descending //按年齡降序,如年齡相同按成績升序建立普通索引,索引標識為xbcj1//
七. 命令
set index to 打開當前的一個或多個索引文件並確定主控索引文件(to後加東西是打開,不加是關閉)
set order to 確定主控索引
locate 順序查找滿足條件的記錄,並且指向它
seek 索引查找
count 記數命令
sum 求和命令
average 求平均值命令
total 匯總命令
max 求最大值
min 求最小值
八.SQL查詢結構
1.select 欄位列表 要顯示的欄位
2.from 表名列表 查詢涉及到的所有表
3.where 條件 條件
4.into 目標 查詢結果輸出到哪去
5.group by 條件表達式 對記錄進行分組
6.having 篩選條件 選擇符合條件的分組
7.order by 關鍵字 對查詢結果按某幾個欄位進行排序
8.top 數值表達式 對顯示表的前幾個記錄
九.程序結構
1.順序結構
2.選擇結構:(1)if 條件表達式 (2)if 條件表達式 (3)do case
語名序列 語名序列1 case 條件表達式1
endif else 語句序列1
語句序列1 case 條件表達式2
endif 語句序列2
case 條件表達式3
語句序列3
3.循環結構:(1)for (2)do while 條件表達式 (3)scan(掃描)
循環體 循環體 循環體
endfor enddo endscan
Loop 重新回到循環的最開始 input to x 從鍵盤輸入一個數給變數x
exit 結束循環跳出循環 accept to y 從鍵盤輸入一個字元串給變數y
set sysmenu to default 退出菜單
thisform.release 退出表單
thisform.refresh 刷新表單
十.函數
數值型函數
函數名 功能 例子 結果
1.abs() 求絕對值 ?abs(-4) 4
2.sqrt() 求平方根 ?sqrt(4) 2
3.int() 取整數 ?int(7.5) 7
4.max() 求最大值 ?max(3,4,5) 5
5.min() 求最小值 ?min(3,4,5) 3
6.mod() 取余 ?mod(11,3) 2
7.round() 四捨五入 ?round(3.1415,3) 3.142
8.ceiling() 返回不小於某值 ?ceiling(3.3) 4
的最小整數
9.floor() 返回不大於指定數
的最大整數 ?floor(3.3) 3
十一.字元處理函數
1.substr() 求子串 ?substr("abcd",2,2) "bc"
2.left() 取左串 ?left("abcd",2) "ab"
3.right() 取右串 ?right("abcd",2) "cd"
4.len() 求串長 ?len("abcd") 4
5.at() 求一個串在另一個
串中出現的位置 ?at("bc","abcd",1) 2
6.space() 輸出空格 ?space(4) " "
7.upper() 將小寫字母轉換成
大寫字母 ?upper("aBc") "ABC"
8.lower() 將大寫字母轉換成
小寫字母 ?lower("aBc") "abc"
9.val() 將字元串轉換為數值 ?val("3.14") 3.14
10.str() 將數值轉換為字元串 ?str(3.14,5,1) "3.1"
11.alltrim() 去掉字元串前面和後面的空格去掉 ?alltrim("abcd") "abcd"
12.stuff 修改字元串 ?stuff("good boy",5.3) "goodgirl&
B. 匯編命令 CALL 的是什麼參數
00453E50 /$ 51 PUSH ECX ;
00453E51 |. 53 PUSH EBX
00453E52 |. 56 PUSH ESI //保存環境
00453E53 |. 8BF1 MOV ESI,ECX //esi = ecx = 第一個參數
00453E55 |. 8B4E 14 MOV ECX,DWORD PTR DS:[ESI+14]
看這段代碼,應該是fastcall調用方式,該調用方式是使用ecx來傳第一個參數,edx來傳第二個參數,其他的使用堆棧來傳遞。00453E50這個函數在這部分只看出有一個參數,其他的參數不確定,找一下函數返回的地方,看返回幾個參數。
我猜這里可能只有一個參數,即該函數調用:fun_00453E50(esi)
00471A12 |. 8BCE MOV ECX,ESI //ecx = esi = 第一個參數
00471A14 |. E8 3724FEFF CALL elementc.00453E50。
補充:匯編指令是匯編語言中使用的一些操作符和助記符,還包括一些偽指令(如assume,end)。用於告訴匯編程序如何進行匯編的指令,它既不控制機器的操作也不被匯編成機器代碼,只能為匯編程序所識別並指導匯編如何進行。
C. 請詳細講解下批處理文件echo、@、call、pause、rem 命令的具體用法以及含義
1、
顯示信息,或將命令回顯打開或關上。
ECHO [ON | OFF]
ECHO [message]
要顯示當前回顯設置,鍵入不帶參數的 ECHO。
從批處理程序調用另一個批處理程序。
2、
CALL [drive:][path]filename [batch-parameters]
batch-parameters 指定批處理程序所需的命令行信息。
如果命令擴展名被啟用,CALL 會如下改變:
CALL 命令現在將卷標當作 CALL 的目標接受。語法是:
CALL:label arguments
一個新的批文件上下文由指定的參數所創建,控制在卷標被指定
後傳遞到語句。您必須通過達到批腳本文件末兩次來 "exit" 兩次。
第一次讀到文件末時,控制會回到 CALL 語句的緊後面。第二次
會退出批腳本。鍵入 GOTO /?,參看 GOTO : EOF 擴展名的描述,
此描述允許您從一個批腳本返回。
另外,批腳本文本參數參照(%0、%1、等等)已如下改變:
批腳本里的 %* 指出所有的參數(如 %1 %2 %3 %4 %5 ...)
批參數(%n)的替代已被增強。您可以使用以下語法:
%~1 - 刪除引號("),擴充 %1
%~f1 - 將 %1 擴充到一個完全合格的路徑名
%~d1 - 僅將 %1 擴充到一個驅動器號
%~p1 - 僅將 %1 擴充到一個路徑
%~n1 - 僅將 %1 擴充到一個文件名
%~x1 - 僅將 %1 擴充到一個文件擴展名
%~s1 - 擴充的路徑指含有短名
%~a1 - 將 %1 擴充到文件屬性
%~t1 - 將 %1 擴充到文件的日期/時間
%~z1 - 將 %1 擴充到文件的大小
%~$PATH : 1 - 查找列在 PATH 環境變數的目錄,並將 %1
擴充到找到的第一個完全合格的名稱。如果環境
變數名未被定義,或者沒有找到文件,此組合鍵會
擴充到空字元串
可以組合修定符來取得多重結果:
%~dp1 - 只將 %1 擴展到驅動器號和路徑
%~nx1 - 只將 %1 擴展到文件名和擴展名
%~dp$PATH:1 - 在列在 PATH 環境變數中的目錄里查找 %1,
並擴展到找到的第一個文件的驅動器號和路徑。
%~ftza1 - 將 %1 擴展到類似 DIR 的輸出行。
在上面的例子中,%1 和 PATH 可以被其他有效數值替換。
%~ 語法被一個有效參數號碼終止。%~ 修定符不能跟 %*
使用
3、
暫停批處理程序,並顯示以下消息:
請按任意鍵繼續. . . 在批處理文件或 CONFIG.SYS 里加上註解或說明。
4、
REM [comment]