亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        Data控件及對dbf表的編程

        2014-09-01 07:44:02張參軍
        新媒體研究 2014年11期
        關(guān)鍵詞:控件示例語句

        張參軍

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

        關(guān)鍵詞Data控件;連接;切換;刪除;更改;索引;復(fù)制;查詢

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

        1Data連接的建立

        1.1 直接連接

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

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

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

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

        Data.RecordSource = "ys200"'表名稱

        Data.RecordsetType = 0 '記錄集類型

        1.2 通過變量連接

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

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

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

        Data.RecordSource = ybming '重建表連接

        Data1.RecordsetType = 0

        2Data連接的斷開與切換

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

        3表的復(fù)制與索引的建立

        使用復(fù)制函數(shù)Filecopy復(fù)制表和索引文件,得到的復(fù)制表和原表結(jié)構(gòu)相同,得到的索引文件也不會發(fā)生變化,仍保持和復(fù)制表的對應(yīng)關(guān)系。如果使用sql語句復(fù)制,得到的索引文件和表文件不對應(yīng),必須重建索引。如果復(fù)制Data目前引用的表,需要先做表連接的切換,釋放當(dāng)前表的引用,獲取復(fù)制權(quán)限。

        3.1 Filecopy復(fù)制

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

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

        FileCopy"c:aa.dbf", "c:b.dbf" '復(fù)制dbf文件

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

        3.2 sql復(fù)制

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

        示例:復(fù)制c盤下ku目錄中表aa.dbf、索引aa.cdx文件為對應(yīng)的bb文件

        Dim dbs As Database'定義庫對象

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

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

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

        dbs.Execute sql '執(zhí)行復(fù)制

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

        dbs.Execute sql'創(chuàng)建字段"名次"的索引

        創(chuàng)建必要字段的索引后,同名索引文件bb.cdx隨即產(chǎn)生。

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

        Data控件提供了記錄集方法,可以追加、修改表記錄,然后使用更新方法,使記錄變動從內(nèi)存轉(zhuǎn)移到記錄,產(chǎn)生實際效果。使用更新方法,必須在使用添加、編輯方法的前提下,否則系統(tǒng)拒絕執(zhí)行更新操作。刷新方法,重取表中記錄和數(shù)據(jù)綁定控件對應(yīng),同時定位第一條記錄為當(dāng)前記錄。

        添加代碼:Data.Recordset.Addnew

        修改代碼:Data.Recordset.Edit

        更新代碼:Data.Recordset.Update

        刷新代碼:Data.Refresh

        5表記錄的刪除

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

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

        Dim dbs As Database '定義庫對象

        Dim sql As String '定義執(zhí)行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'產(chǎn)生結(jié)構(gòu)相同的表ls.dbf,同時添加剩余記錄

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

        …… '重定向Data到其他數(shù)據(jù)源,為刪除做準(zhǔn)備

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

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

        sql = "select*intoaa.dbffromls.dbf"

        dbs.Execute sql '由ls.dbf重新產(chǎn)生aa.dbf

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

        …… '重建Data到aa的連接

        endprint

        6表記錄的查詢

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

        6.1 seek查詢(find查詢略過)

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

        Data.Recordset.Index =”性別” ‘指定當(dāng)前索引字段

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

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

        6.2 sql單一條件查詢

        6.2.1 直接查詢

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

        定義庫對象、sql字符變量并初始化,然后執(zhí)行sql語句實現(xiàn)查詢

        Dim dbs As Database '定義庫對象

        Dim sql As String '定義執(zhí)行sql的字符變量sql

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

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

        dbs.Execute sql

        6.2.2 通過變量查詢

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

        字符型的情況:

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

        數(shù)值型的情況

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

        6.2.3 sql復(fù)合條件查詢

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

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

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

        7表記錄的排序

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

        假設(shè)條件同六中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控件,結(jié)合其他記錄集方法,能滿足日常的數(shù)據(jù)處理需求,特別是Data控件和數(shù)據(jù)綁定控件的結(jié)合,呈現(xiàn)給用戶的是更直觀的管理效果。Data控件使用中有一定的局限性,這受制于VB平臺本身對數(shù)據(jù)處理的能力,比如記錄的刪除。VB的ADO數(shù)據(jù)控件有較好的操作靈活性,使用方法基本同Data控件。使用Data控件,借助VB對dbf表操作,是窺探和學(xué)習(xí)數(shù)據(jù)管理編程的一個窗口和方法。

        參考文獻(xiàn)

        [1]宋廣群,姚成.vb程序設(shè)計[M].中國科學(xué)技術(shù)大學(xué)出版社,2006.

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

        [3]黃振軒、宋衛(wèi)海、林立松.vb程序設(shè)計與數(shù)據(jù)庫[M].電子工業(yè)出版社,2007.

        endprint

        猜你喜歡
        控件示例語句
        大還是小
        重點:語句銜接
        2019年高考上海卷作文示例
        常見單位符號大小寫混淆示例
        山東冶金(2019年5期)2019-11-16 09:09:22
        “全等三角形”錯解示例
        關(guān)于.net控件數(shù)組的探討
        軟件(2018年7期)2018-08-13 09:44:42
        精彩語句
        如何搞定語句銜接題
        語文知識(2014年4期)2014-02-28 21:59:52
        就這樣玩會VBA中常見的自定義控件
        電腦迷(2012年24期)2012-04-29 00:44:03
        作文語句實錄
        免费人成视网站在线剧情| 国产成人精品久久一区二区三区| 暖暖视频在线观看免费| 日本高清不卡二区| 特级毛片a级毛片在线播放www| 亚洲av手机在线播放| 久久综合香蕉国产蜜臀av| 国外亚洲成av人片在线观看| 国产成人8x视频网站入口| 91中文字幕精品一区二区| 手机在线亚洲精品网站| 国产免国产免费| 久久久久亚洲av成人网址| 精品国产三级国产av| 视频在线观看一区二区三区| 任你躁国产自任一区二区三区| 国产在线手机视频| 亚洲福利天堂网福利在线观看| 蜜桃成人精品一区二区三区| 亚洲色一区二区三区四区| 一本一道久久a久久精品综合| AV无码最在线播放| 国产欧美另类精品久久久| 97久久成人国产精品免费| 亚洲精品中文字幕一二三四| 2020无码专区人妻系列日韩| 少妇的丰满3中文字幕| 粉嫩av一区二区在线观看| 激情在线一区二区三区视频| 中国少妇内射xxxx狠干| 四虎精品成人免费观看| 中文字幕久久人妻av| 老鸭窝视频在线观看| 亚洲旡码a∨一区二区三区 | 伊人久久久精品区aaa片| 白浆出来无码视频在线| 国产91在线精品观看| 中文字幕人妻在线中字| 免费特级黄毛片| 最新亚洲av日韩av二区一区| 久久天堂一区二区三区av|