複製鏈接
請複製以下鏈接發送給好友

當前記錄

鎖定
Visual Basic對數據庫表中的記錄進行操作時,雖然可以對錶中全部記錄或部分記錄進行連續的處理。但是在處理過程中,總是按順序逐條記錄進行的。因此對於表來説,在任一時刻,總是隻有一條記錄是數據處理的當前對象,它或者正等待處理,或者正被處理,這個記錄稱為當前記錄。當用户打開一個表或者説使用對象的方法建立一個新的Recordset對象時,表中的第一條記錄就是當前記錄。 [1] 
中文名
當前記錄
外文名
Current record
定    義
等待處理或者正被處理的當前對象
性    質
數據處理的當前對象,
有關術語
當前數據庫,記錄指針
學    科
計算機

當前記錄由來

FoxPro對錶的操作是以記錄為單位的,那麼在對錶進行操作時必須明確當前正在對錶的哪條記錄進行操作,為此,這裏就需要引進一個當前記錄的概念,當前記錄的概念與當前工作區、當前盤、當前目錄等概念類似,它是指表中當前可操作的記錄。當前記錄是可以改變的,即當前記錄是一個動態的概念。為了標識當前記錄,這裏還需要引進一個記錄指針的概念,所謂記錄指針是指系統內部用以指向當前記錄的一種標誌,記錄指針所指向的記錄即為當前記錄。通過記錄指針的定位、移動,可將記錄指針移動到預定的位置上,即使預定的記錄成為當前記錄。 [2] 
表文件剛打開時,記錄指針指向1號記錄,即第l條記錄是當前記錄。 [2] 

當前記錄規律

任何一個記錄都有可能成為當前記錄,也就是講“當前記錄”在操怍數據庫的過程中會不斷地變化。不過這種變化既有規律,又可以人為地指定。 [3] 
規律變化
(1)當剛剛打開一個數據庫時,當前記錄就是數據庫中的第一條記錄。
(2)當執行完一個dBASEⅢ命令後,該命令最後操作過的記錄便成為當前記錄,這一記錄便成為下一個命令操作的對象。下面以實例來説明。
操作 説明
.USE XSCJK↙ 打開數據庫XSCJK
.LIST NEXT 2↙ 從當前記錄開始顯示2個記錄
屏幕顯示結果如下:
上面顯示的結果是從第1條記錄開始的,而“LIST NEXT 2”的功能是從當前記錄開始顯示2條記錄。這就證明了數據庫剛剛打開以後,“當前記錄”是第1條記錄。
接着上面的操作,繼續執行下面的命令:
操作 説明
.DISP↙ 顯示當前記錄
屏幕顯示結果如下:
“DISP”命令的功能是顯示當前記錄,而顯示出來的是2號記錄,這説明2號記錄就是當前記錄。這是什麼原因呢?這是由於前一個命令“LIST NEXT 2”最後顯示的是第2號記錄,因而2號記錄便成為“DISP”命令執行時的當前記錄。 [3] 

當前記錄當前記錄

有時,由於某種原因需要指定某一記錄為當前記錄,以便對該記錄進行處理。
例如,如果要求打開XSCJK數據庫,從第3條記錄開始顯示兩條記錄。這一問題的含義是,在打開XSCJK數據庫以後,必須將第3號記錄指定為當前記錄,然後使用LIST或DISPLAY命令顯示兩條記錄。那麼如何指定某一記錄為當前記錄呢?回答是:使用“GO—TO”命令。
GOTO命令有三種格式:
格式 功能
GOTO n 指定第n號記錄為當前記錄
GOTO TOP 指定第1號記錄為當前記錄
GOTO BOTTOM 指定最後一條記錄為當前記錄
下面我們通過實例來驗證一下上述三種格式的GOTO命令。 [3] 
舉例
【要求】驗證GOTO命令的三種格式所完成的功能。
【操作】
.USE XSCJK↙
.GOTO 3↙
.DISP NEXT 2↙
屏幕顯示的結果如下:
上述顯示的記錄是從第3號記錄開始的,即開始顯示前,第3號記錄是當前記錄,這就證明了“GOTO 3”命令完成的功能是:將第3號記錄指定為當前記錄。
【操作】
.GOTO TOP↙
.DISP↙
屏幕顯示如下的結果:
上述顯示的結果表明,“GOTO TOP”命令完成的功能是:將第1號記錄指定為當前記錄。
【操作】
.GoTO BOTTOM↙
.DISP↙
屏幕顯示如下的結果:
上述顯示的結果表明,“GOTO BOTTOM”命令完成的功能是:將最後一條記錄指定為當前記錄。 [3] 

當前記錄修改內容

修改當前記錄的內容使用如下函數:
long put_record(DBF*dbf,char*fmt,...);
該函數的功能為用參數表中的可變參數值分別替換散據庫文件的當前記錄中指定宇段的內容。在修改時既可以替換當前記錄的所有字段的內容,也可以只替換某一個或幾個指定字段的內容。該函數的使用比較複雜,各參數的涵義分別為:
dbf:指向數據庫結構的指針;
fmt;格式字符串。格式字符申中的格式説明符的個數應和可變參數表中的參鼓個數相同,每個格式説明符按從左至右的順序説明可變參數表中的一個參數。每個格式説明符由兩種符號組成:
①字段序號,説明可變參數表中的參數對應於當前記錄中的第幾個字段。如果可參數表中的參數個數和當前記錄中的字段數相等且順序完全一致.則所有格式説明符中的字段序號均可阻省略。如果可變參數的數目小於字段數目並且可變參數的序號和所對應的宇段的序號不一致,那麼應在不一致的可變參數的格式説明符之前使用字段序號。此時如果有若干個可變參數對應的字段連續,那麼可以只在第一個字段對應的可變參數的格式説明符之前使用字段序號。
②可變參數的類型。由於C語言FOXBASE的數據類型之間存在相當大的差異,所以在調用本函數時可變參數與數據庫文件的字段之間的數據類型對應關係是十分重要的。下表列出了可以允許的數據類型對應關係愛對應的格式説明符。 [4] 
修改當前記錄函數和讀取當前記錄內容函數的格式説明符 修改當前記錄函數和讀取當前記錄內容函數的格式説明符
③在格式説明符之間可以使用空格符作為分隔符。
...:可變參數表。可變參數表中的參數可以是變量或表達式,只要其值的類型符台上表中的規定。
在替換成功時,該函數返回當前記錄的記錄號,否則返回0。 [4] 

當前記錄讀取內容

讀取當前記錄內容使用函數:
long get-record(DBF*dbf,char*fmt,...);
該函數的功能為將當前記錄中指定字段的內容傳送到參數表中的可變參數中。和修改當前記錄函數類似,在讀取時既可以傳送當前記錄的所有字段的內容,也可以只傳送某一個或幾個指定字段的內容。該函效的各參數的涵義和修改當前記錄函數的參數的涵義相同,只是可變參數的類型應以上表中的第三列為準。
在傳送成功時,該函數返回當前記錄的記錄號,否則返回0。 [4] 
參考資料
  • 1.    朱順泉編著.Visual Basic 6.0 及其在財經管理中的應用:電子科技大學出版社,2000年11月第1版
  • 2.    萬常選.數據庫應用:中國商業出版社,2000年
  • 3.    袁振華等.個人電腦數據庫技術:清華大學出版社,1995年
  • 4.    劉路放.C語言的漢字處理與圖文數據庫技術:西安交通大學出版社,1995年02月第1版