在VB6數(shù)據(jù)庫程序開發(fā)中使用ADO和SQL_第1頁
在VB6數(shù)據(jù)庫程序開發(fā)中使用ADO和SQL_第2頁
在VB6數(shù)據(jù)庫程序開發(fā)中使用ADO和SQL_第3頁
在VB6數(shù)據(jù)庫程序開發(fā)中使用ADO和SQL_第4頁
免費(fèi)預(yù)覽已結(jié)束,剩余1頁可下載查看

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、在vb6.0數(shù)據(jù)庫程序開發(fā)中使用ado 和sql 摘要:本文用實(shí)例說明了通過ado處理數(shù)據(jù)庫表中數(shù)據(jù)的實(shí)現(xiàn)方法,并介紹了利用sql語句實(shí)現(xiàn)對(duì)數(shù)據(jù)作數(shù)學(xué)統(tǒng)計(jì)的方法關(guān)鍵詞:adosql數(shù)據(jù)庫1引言 在vb的應(yīng)用程序開發(fā)中,訪問數(shù)據(jù)庫的方法可歸納為兩種。一種是通過dao 或ado的數(shù)據(jù)源對(duì)表中的數(shù)據(jù)進(jìn)行直接操作,另一種是通過標(biāo)準(zhǔn)的sql語句結(jié)合connection 對(duì)象對(duì)數(shù)據(jù)庫中的數(shù)據(jù)進(jìn)行操作,對(duì)表中的數(shù)據(jù)進(jìn)行檢索和統(tǒng)計(jì)。dao是visual basic 5.0使用的數(shù)據(jù)訪問技術(shù),它在用于訪問mdb文件格式的數(shù)據(jù)庫時(shí)有較高的效率,但訪問如oracle或 sql server這樣的非mdb文件格式的數(shù)

2、據(jù)庫時(shí),因它基于access/jet數(shù)據(jù)庫引擎,訪問速度會(huì)大大降低。所以visual basic 6.0推出了ado 技術(shù)。ado中文含意是activex數(shù)據(jù)對(duì)象(activex data object),它是一種面向?qū)ο蟮慕涌凇do訪問數(shù)據(jù)庫是通過訪問oledb使用程序和oledb供給程序來進(jìn)行的,它在封裝ole db的程序中使用了大量的com接口,是一種高層的訪問技術(shù)。它在繼承ole db的同時(shí),大大簡(jiǎn)化了ole db的操作。此外,ado技術(shù)可以以activex控件的形式出現(xiàn),被廣泛應(yīng)用于microsoft activex頁、visual c+ 和visual basic的編程。sql是

3、管理關(guān)系數(shù)據(jù)庫系統(tǒng)的標(biāo)準(zhǔn)語言。每一種關(guān)系數(shù)據(jù)庫如access、 sql server、 oracle 等都有它自己特有的sql語言,但它們都支持像select、insert、update、delete、create、drop等標(biāo)準(zhǔn)語句來完成幾乎所有的對(duì)數(shù)據(jù)庫的操作本文就ado 和sql的用法做一些探討。 開發(fā)原型我們?yōu)橛?jì)算機(jī)產(chǎn)品經(jīng)銷商開發(fā)一個(gè)進(jìn)銷存的程序。用ms access 數(shù)據(jù)庫,創(chuàng)建的數(shù)據(jù)庫名叫 ware.mdb. 在這個(gè)數(shù)據(jù)庫中,建立表,表,表,表。表1 商品明細(xì)表: waredetail商品編號(hào) 商品名稱 單價(jià) 廠商 庫存wareid(ch10) warename(ch30) wpr

4、ice(money) manifest(ch40) numinlib(int)表2 流水賬 waccount商品編號(hào) 進(jìn)貨數(shù) 出貨數(shù) 日期wareid(ch10) wquantity(int) wsold(int) wdate(date)表庫存表 wlib總庫存數(shù) 總庫存金額totalnum(int) totalmoney(money)表臨時(shí)表winout進(jìn)貨數(shù) 出貨數(shù)quantity, soldado的使用方法ado2.0存在于visual basic 6.0的兩個(gè)獨(dú)立的庫中 第一個(gè)稱為 adodb,在references對(duì)話框中的名字是microsoft activex data obje

5、cts 2.0 library在這個(gè)庫中包含了所有的ado對(duì)象。對(duì)于那些并不需要太多加強(qiáng)的ado資源工程,應(yīng)該使用ador庫。在references對(duì)話框中這個(gè)庫稱為microsoft activex data objects recordset 2.1 library 這個(gè)庫只包含對(duì)recordsets 的支持。visual basic 6.0通過ado控件和 recordset對(duì)象兩種方法來使用ado下面介紹一下recordset 對(duì)象的使用方法在visual basic 中加入如下代碼: dim myconnectstr as strng dim myrecordset as new a

6、dodb.recordsetmyconnectstr=provider=microsoft.jet.oledb.4.0;datasource= & app.path & /ware.mdb;persist security info=falsemyrecordset.coursorlocation=aduseclientmyrecordset.open “select * from wdetail ”,myconnectstr,adopenkeyset,adlockpessimistic這樣就可以對(duì)商品明細(xì)表追加紀(jì)錄:myrecordset.addnewmyrecordset.fields(w

7、areid) = 000001myrecordset.fields(warename) = switch 3500myrecordset.fields(wprice) = 4350myrecordset.fields(wmanufect) = ciscomyrecordset.update獲取表中的紀(jì)錄數(shù):recordcnt=myrecordset.recordcount移動(dòng)紀(jì)錄指針myrecordset.movefirst 移動(dòng)到表的第一條紀(jì)錄myrecordset.movelast 移動(dòng)到表的最后一條紀(jì)錄myrecordset.moveprevious 移動(dòng)到表的上一條紀(jì)錄myrecord

8、set.movenext 移動(dòng)到表的下一條紀(jì)錄刪除當(dāng)前紀(jì)錄myrecordset.delete最后關(guān)閉紀(jì)錄集,釋放紀(jì)錄集變量myrecordset.closeset myrecordset=nothingsql的使用 上面所用的方法,只適合于對(duì)單個(gè)表的簡(jiǎn)單操作。如果是對(duì)表的數(shù)據(jù)作復(fù)雜查詢,或數(shù)據(jù)統(tǒng)計(jì),用上述方法就非常不方便。一般情況下我們用sql 語言結(jié)合connection 對(duì)象實(shí)現(xiàn)sql 語句中最常用的是select語句。該語句用來從數(shù)據(jù)庫表中檢索數(shù)據(jù)或者完成其他一些功能。為了使用這條語句你必須知道你要檢索的字段名稱,或者直接用星號(hào)來檢索所有字段。下面是select語句的基本語法: sel

9、ectall distinct top xxpercent select_list from table_name where search_criteriajoin_criteriaandor search_criteria group by allaggregate_free_expression,aggregate_free_expression. having search_conditions order byfield_listascdesc其中:all 定義每一行都將返回,包括重復(fù)紀(jì)錄。distinct定義只返回不重復(fù)的紀(jì)錄。top定義你需要的得到的返回紀(jì)錄的前幾條。在數(shù)字xx后

10、用percent來說明只返回前面百分之幾條紀(jì)錄。select_list列出要檢索的表的列名。table_name列出要檢索的表名search_criteria列出要檢索的表的列名join_criteria列出一個(gè)表中用來和另一個(gè)表的某個(gè)列連接的列名aggregate_frepage_breake_expression 是一個(gè)不包含聚集的表達(dá)式。field_list列出了數(shù)據(jù)排序的順序asc定義按照升序排序desc定義按照降序排序。下面我們來舉例說明。你希望檢索商品名細(xì)表中的信息可使用如下語句: select * from waredetial 關(guān)鍵字order by要求列名以確定按哪一列排序。

11、這里我們選定按wareid排序,如果你希望按列wareid的字母順序排列可采用下面的代碼:select wareid from waredetial order by wareid默認(rèn)是按升序排列如果想按降序排列可用如下代碼:select wareid from waredetial order by wareid desc如果你想選擇多列,使用下面的語句select wareid,warename from waredetial order by wareid 用where 關(guān)鍵字來限制選擇范圍。如果你想選擇waredetial中warename 列值為“cisco6000”的行。你可用下面

12、的代碼實(shí)現(xiàn): select * from waredetial where warename=”cisco6000” order by wareid除了select 語句,標(biāo)準(zhǔn)sql語句還有insert update delete等,在此不再作具體介紹實(shí)際的應(yīng)用經(jīng)常要對(duì)表中的某列或多列數(shù)據(jù)進(jìn)行數(shù)學(xué)運(yùn)算,這就需要如count(),sum(),avg(),max(),min() 等數(shù)學(xué)函數(shù)。下面對(duì)這些函數(shù)的用法作具體說明。先建立一個(gè)與數(shù)據(jù)庫的連接dim myconnectstr as strngdim mycnt as new adodb.connectionmyconnectstr=provid

13、er=microsoft.jet.oledb.4.0;datasource= & app.path & /ware.mdb;persist security info=falsemycnt.open myconnectstr若要產(chǎn)生某種商品的總進(jìn)貨數(shù)以及總出貨數(shù)可用以下代碼:exestr =”insert into winout select sum(wquantity) as quantity, sum(wsold) as sold from waccount where wareid= 000001”若要產(chǎn)生庫存的總數(shù)以及總庫存金額可用以下代碼:exestr = insert into wlib select sum(numinlib) as totalnum,sum(numinlib*wprice) as totalmoney from wdetail 運(yùn)行上述代碼:mycnt.execute exestr關(guān)閉連接mycnt.close在應(yīng)用程序的開發(fā)中,基于數(shù)據(jù)庫的不同,只在連接的數(shù)據(jù)源部分作相應(yīng)的修改,其它的部分無需改動(dòng)。 結(jié)束語 本文所列舉的僅僅是ado和sql的用法

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論