999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

Data控件及對dbf表的編程

2014-09-01 07:44:02張參軍
新媒體研究 2014年11期
關鍵詞:方法

張參軍

摘要Basic是早期編程的入門語言,結構緊湊,易上手。隨著可視化平臺VB的推出,增加和鞏固了用戶群。VB對小型數據庫編程,有一定的優勢,同時可以使用的控件很多,Data控件就是其中之一。Data控件連接數據庫,可以實現大量的數據管理功能。Foxpro是早期記錄集處理編程語言,隨著VF平臺的推出,dbf數據格式的應用日益廣泛。Data控件及其dbf表的操作,需要處理的問題及其思路,在此做一個簡單的闡述,希望能給日常編程帶來幫助(假設Data控件名是Data)。

關鍵詞Data控件;連接;切換;刪除;更改;索引;復制;查詢

中圖分類號:TP3 文獻標識碼:A 文章編號:1671-7597(2014)11-0131-02

1Data連接的建立

1.1 直接連接

指定要連接的表的路徑、類型、表名稱。VB支持的數據類型較多:access、foxpro、dBase、Excel、Lotus等,支持最好的是access表。記錄集類型有三種:0對應table,就是表;1對應dynaset,2對應snapshot。

示例:連接安裝路徑下ku目錄中ys200.dbf表

Data.Connect = "FoxPro 2.0"'表的類型

Data.DatabaseName = App.Path & "" & "ku" '表的路徑

Data.RecordSource = "ys200"'表名稱

Data.RecordsetType = 0 '記錄集類型

1.2 通過變量連接

經常需要暫時斷開當前的表連接,將Data指向另一個表進行操作。操作結束后,再通過變量實現Data與原表的連接。下面示例原表名稱提取到變量ybming中,以及Data控件與ybming變量中保存的原表名的連接。

ybming = Data1.RecordSource '提取原表名稱到變量

Data.DatabaseName = App.Path & "ku" '重定位表路徑

Data.RecordSource = ybming '重建表連接

Data1.RecordsetType = 0

2Data連接的斷開與切換

Data控件沒有提供斷開表連接的方法,應用中使用表的切換(重定向)的方法實現斷開的目的,比如讓Data連接到一個目前不會引用的表上,示例略過。

3表的復制與索引的建立

使用復制函數Filecopy復制表和索引文件,得到的復制表和原表結構相同,得到的索引文件也不會發生變化,仍保持和復制表的對應關系。如果使用sql語句復制,得到的索引文件和表文件不對應,必須重建索引。如果復制Data目前引用的表,需要先做表連接的切換,釋放當前表的引用,獲取復制權限。

3.1 Filecopy復制

Filecopy函數使用廣泛,在此不做說明,使用參看下面的示例。

示例:復制c盤下aa表(未引用)及其索引文件到c盤下bb表

FileCopy"c:aa.dbf", "c:b.dbf" '復制dbf文件

FileCopy"c:aa.cdx", "c:b.cdx" '復制索引文件

3.2 sql復制

要執行sql語句,先[引用]Microsoft DAO2.5/3.51 Compatibility Library,然后定義、初始化Database庫對象,借助庫對象提供的方法,實現復制。

示例:復制c盤下ku目錄中表aa.dbf、索引aa.cdx文件為對應的bb文件

Dim dbs As Database'定義庫對象

Dim sql As String '定義執行sql語句的字符變量sql

Set dbs = OpenDatabase("c:ku", False, False, "FoxPro 2.0")

sql = "select*intobb.dbffrom aa.dbf"'初始化aa

dbs.Execute sql '執行復制

sql = "create index 名次 on bb.dbf(名次)" '初始化aa

dbs.Execute sql'創建字段"名次"的索引

創建必要字段的索引后,同名索引文件bb.cdx隨即產生。

4表記錄的添加、修改、更新與刷新

Data控件提供了記錄集方法,可以追加、修改表記錄,然后使用更新方法,使記錄變動從內存轉移到記錄,產生實際效果。使用更新方法,必須在使用添加、編輯方法的前提下,否則系統拒絕執行更新操作。刷新方法,重取表中記錄和數據綁定控件對應,同時定位第一條記錄為當前記錄。

添加代碼:Data.Recordset.Addnew

修改代碼:Data.Recordset.Edit

更新代碼:Data.Recordset.Update

刷新代碼:Data.Refresh

5表記錄的刪除

Vb中沒有提供徹底刪除記錄的方法,用Data控件記錄集方法delete,只是給符合條件的記錄打上了刪除標記。要徹底刪除記錄:先使用sql的select語句建立和當前表結構一致的臨時表;然后用記錄集方法delete從原表刪除記錄;再使用sql的insert語句將原表剩余記錄追加到臨時表;釋放并刪除原表;重命名臨時表為原表,完成刪除操作。示例刪除c盤ku目錄下aa表中性別為"女"的記錄:

ybming = Data1.RecordSource '提取原表名稱到變量

Dim dbs As Database '定義庫對象

Dim sql As String '定義執行sql的字符變量

Set dbs = OpenDatabase("c:ku", False, False, "FoxPro 2.0")

sql = "delete*fromaa.dbfwhere 性別='女' "

dbs.Execute sql'從aa.dbf中清除性別為"女"的記錄

sql = "select*intols.dbffromaa.dbf"

dbs.Execute sql'產生結構相同的表ls.dbf,同時添加剩余記錄

……'建立ls表索引的代碼

…… '重定向Data到其他數據源,為刪除做準備

Kill "c:aa.dbf"'刪除aa.dbf

Kill"c:aa.cdx" '刪除aa的索引文件

sql = "select*intoaa.dbffromls.dbf"

dbs.Execute sql '由ls.dbf重新產生aa.dbf

…… '建立aa表索引的代碼

…… '重建Data到aa的連接

endprint

6表記錄的查詢

查詢使用的記錄集方法有find、seek兩種,找到后自動定位符合條件的第一條記錄為當前記錄;不能復合查詢;find查詢沒有seek查詢速度快。seek方法主要對表操作,查找前必須指定當前的索引字段。sql語句功能強大,可以復合查詢,找到后也定位符合條件的第一條記錄為當前記錄,但是查找字段必須為索引字段,無需專門指定。復合查詢要注意查詢字段、查詢對象的類型,以及查詢條件等是否放在變量中。多表聯動查詢,可參考相關資料,在此略過。

6.1 seek查詢(find查詢略過)

示例:查詢aa中性別為”女”的記錄

Data.Recordset.Index =”性別” ‘指定當前索引字段

Data.Recordset.Seek“=”,”女” ‘seek查詢

(Data.Recordset.Seek“=”,xb ‘seek查詢,查詢對象在變量xb中的情況)

6.2 sql單一條件查詢

6.2.1 直接查詢

示例:查詢aa中性別為"女"的記錄

定義庫對象、sql字符變量并初始化,然后執行sql語句實現查詢

Dim dbs As Database '定義庫對象

Dim sql As String '定義執行sql的字符變量sql

Set dbs = OpenDatabase("c:ku", False, False, "FoxPro 2.0")

sql= "select*intols.dbffromaa.dbfwhere 性別='女' "

dbs.Execute sql

6.2.2 通過變量查詢

查詢的對象放在變量中,這時注意,查詢的對應字段是字符型還是數值型,則對應的sql語句對變量的引用方法不同。假設變量名是aa,當前表名放在變量ybming中,兩種引用方法示例如下(查找性別為"女"的記錄):

字符型的情況:

aa = "select*intols.dbffrom" & ybming & "where 名次= " & aa & "

數值型的情況

aa = "select*intols.dbffrom" & ybming & "where 名次= '" & aa & "' "

6.2.3 sql復合條件查詢

復合查詢要考慮查詢字段、查詢對象的類型,以及查詢字段、查詢條件、查詢對象是否在變量中,不同情況對應的方法不同。

假設表名稱變量是ybming,字段變量是ziduan1(字符型)、ziduan2(數值型),條件變量是tiaojian1、tiaojian2,對象變量是duixiang1(字符型)、duixiang2(數值型),邏輯條件放在變量luoji中,示例如下:

aa = "select*intols.dbffrom" & ybming & "where" & ziduan1 & "" & tiaojian1 & "" & duixiang1 & " " & luoji & "" & ziduan2 & "" & tiaojian2 & " '" & duixiang2 & "'"

7表記錄的排序

排序使用sql語句的order by子句完成,默認升序排列,降序使用Desc參數;排序同樣需要考慮查詢字段的類型,以及查詢字段、查詢條件、查詢對象是否在變量中,是否復合查詢,不同情況對應的方法不同。

假設條件同六中6.2.3,按照"用時"字段排序,示例如下:

7.1 order by直接排序

aa = "select*into ls.dbffrom" & ybming & "where" & duixiang1 & "" & tiaojian1 & "" & duixiang1 & " " & luoji & "" & duixiang2 & " " & tiaojian2 & " '" & duixiang2 & "' order by 用時"

7.2 通過變量排序

排序字段“用時”放在變量yongshi中的情況

aa = "select*into ls.dbffrom" & ybming & "where" & duixiang1 & "" & tiaojian1 & "" & duixiang1 & " " & luoji & "" & duixiang2 & "" & tiaojian2 & " '" & duixiang2 & "'order by" & yongshi & ""

借助Data控件,結合其他記錄集方法,能滿足日常的數據處理需求,特別是Data控件和數據綁定控件的結合,呈現給用戶的是更直觀的管理效果。Data控件使用中有一定的局限性,這受制于VB平臺本身對數據處理的能力,比如記錄的刪除。VB的ADO數據控件有較好的操作靈活性,使用方法基本同Data控件。使用Data控件,借助VB對dbf表操作,是窺探和學習數據管理編程的一個窗口和方法。

參考文獻

[1]宋廣群,姚成.vb程序設計[M].中國科學技術大學出版社,2006.

[2]林卓然.VB語言程序設計[M].電子工業出版社,2009.

[3]黃振軒、宋衛海、林立松.vb程序設計與數據庫[M].電子工業出版社,2007.

endprint

猜你喜歡
方法
中醫特有的急救方法
中老年保健(2021年9期)2021-08-24 03:52:04
高中數學教學改革的方法
河北畫報(2021年2期)2021-05-25 02:07:46
化學反應多變幻 “虛擬”方法幫大忙
變快的方法
兒童繪本(2020年5期)2020-04-07 17:46:30
學習方法
用對方法才能瘦
Coco薇(2016年2期)2016-03-22 02:42:52
最有效的簡單方法
山東青年(2016年1期)2016-02-28 14:25:23
四大方法 教你不再“坐以待病”!
Coco薇(2015年1期)2015-08-13 02:47:34
賺錢方法
捕魚
主站蜘蛛池模板: 久久精品中文字幕少妇| 国产00高中生在线播放| 久久精品视频亚洲| 欧美成人a∨视频免费观看| 亚洲人成亚洲精品| 亚洲一级无毛片无码在线免费视频 | 国产成人调教在线视频| 国产一区自拍视频| 波多野吉衣一区二区三区av| 婷婷色一二三区波多野衣| 熟妇人妻无乱码中文字幕真矢织江 | 在线视频亚洲欧美| 欧美日韩综合网| 久久一色本道亚洲| 无码'专区第一页| 成人久久精品一区二区三区 | 色网站在线免费观看| 国产麻豆91网在线看| 无码专区国产精品第一页| 亚洲一级毛片免费看| 欧美a在线| 欧美成人免费午夜全| 国产麻豆福利av在线播放| 大陆国产精品视频| 亚洲天堂首页| 欧亚日韩Av| 亚洲欧美成人综合| 亚洲首页在线观看| 久久久精品国产亚洲AV日韩| 久久人妻系列无码一区| 国产成人精品2021欧美日韩| 热热久久狠狠偷偷色男同| 欧美三级日韩三级| 亚洲看片网| 伦精品一区二区三区视频| 五月综合色婷婷| 亚洲国产天堂久久综合226114| 亚洲中文制服丝袜欧美精品| 国产乱子伦一区二区=| 中文无码毛片又爽又刺激| 亚洲成人精品在线| 久久精品国产精品青草app| 欧美全免费aaaaaa特黄在线| 亚洲婷婷在线视频| 国产精品一区二区无码免费看片| 精品欧美一区二区三区久久久| www.91中文字幕| 国产福利小视频高清在线观看| 首页亚洲国产丝袜长腿综合| 视频一本大道香蕉久在线播放| 九九久久精品国产av片囯产区| 天天躁夜夜躁狠狠躁图片| 精品无码国产一区二区三区AV| 成年人视频一区二区| 国产综合精品日本亚洲777| 无码丝袜人妻| 91色爱欧美精品www| 无码丝袜人妻| 99免费在线观看视频| 五月婷婷伊人网| 成年av福利永久免费观看| 第九色区aⅴ天堂久久香| 一级高清毛片免费a级高清毛片| 成人国产精品2021| 久久综合色88| 欧洲av毛片| 国产精品亚洲专区一区| 亚洲精品黄| 国产麻豆aⅴ精品无码| 欧美精品二区| 成人国产精品视频频| 亚洲精品午夜无码电影网| 中文字幕天无码久久精品视频免费 | 国产在线观看成人91| 国产白浆在线| 国产精品hd在线播放| 国产在线观看91精品亚瑟| 亚洲免费人成影院| 中文字幕不卡免费高清视频| …亚洲 欧洲 另类 春色| 国产视频一区二区在线观看| 97狠狠操|