版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
在VB6.0數(shù)據(jù)庫(kù)程序開發(fā)中使用ADO和SQL
摘要:本文用實(shí)例說(shuō)明了通過(guò)ADO處理數(shù)據(jù)庫(kù)表中數(shù)據(jù)的實(shí)現(xiàn)方法,并介紹了利用SQL語(yǔ)句實(shí)現(xiàn)對(duì)數(shù)據(jù)作數(shù)學(xué)統(tǒng)計(jì)的方法.關(guān)鍵詞:ADOSQL數(shù)據(jù)庫(kù)1.引言
在VB的應(yīng)用程序開發(fā)中,訪問(wèn)數(shù)據(jù)庫(kù)的方法可歸納為兩種。一種是通過(guò)DAO或ADO的數(shù)據(jù)源對(duì)表中的數(shù)據(jù)進(jìn)行直接操作,另一種是通過(guò)標(biāo)準(zhǔn)的SQL語(yǔ)句結(jié)合Connection對(duì)象對(duì)數(shù)據(jù)庫(kù)中的數(shù)據(jù)進(jìn)行操作,對(duì)表中的數(shù)據(jù)進(jìn)行檢索和統(tǒng)計(jì)。DAO是VisualBasic5.0使用的數(shù)據(jù)訪問(wèn)技術(shù),它在用于訪問(wèn)MDB文件格式的數(shù)據(jù)庫(kù)時(shí)有較高的效率,但訪問(wèn)如Oracle或SQLServer這樣的非MDB文件格式的數(shù)據(jù)庫(kù)時(shí),因它基于Access/Jet數(shù)據(jù)庫(kù)引擎,訪問(wèn)速度會(huì)大大降低。所以VisualBasic6.0推出了ADO技術(shù)。ADO中文含意是ActiveX數(shù)據(jù)對(duì)象(ActiveXDataObject),它是一種面向?qū)ο蟮慕涌凇DO訪問(wèn)數(shù)據(jù)庫(kù)是通過(guò)訪問(wèn)OLEDB使用程序和OLEDB供給程序來(lái)進(jìn)行的,它在封裝OLEDB的程序中使用了大量的COM接口,是一種高層的訪問(wèn)技術(shù)。它在繼承OLEDB的同時(shí),大大簡(jiǎn)化了OLEDB的操作。此外,ADO技術(shù)可以以ActiveX控件的形式出現(xiàn),被廣泛應(yīng)用于MicrosoftActiveX頁(yè)、VisualC++和VisualBasic的編程。SQL是管理關(guān)系數(shù)據(jù)庫(kù)系統(tǒng)的標(biāo)準(zhǔn)語(yǔ)言。每一種關(guān)系數(shù)據(jù)庫(kù)如Access、SQLServer、Oracle等都有它自己特有的SQL語(yǔ)言,但它們都支持像select、insert、update、delete、create、drop等標(biāo)準(zhǔn)語(yǔ)句來(lái)完成幾乎所有的對(duì)數(shù)據(jù)庫(kù)的操作.本文就ADO和SQL的用法做一些探討。2.開發(fā)原型我們?yōu)橛?jì)算機(jī)產(chǎn)品經(jīng)銷商開發(fā)一個(gè)進(jìn)銷存的程序。用MSAccess數(shù)據(jù)庫(kù),創(chuàng)建的數(shù)據(jù)庫(kù)名叫ware.mdb.在這個(gè)數(shù)據(jù)庫(kù)中,建立表1,表2,表3,表4。表1
商品明細(xì)表:
wareDetail商品編號(hào)
商品名稱
單價(jià)
廠商
庫(kù)存wareID(ch10)
wareName(ch30)
wPrice(Money)
manifest(ch40)
numInLib(int)表2
流水賬wAccount商品編號(hào)
進(jìn)貨數(shù)
出貨數(shù)
日期wareID(ch10)
wQuantity(int)
wSold(int)
wDate(date)表3庫(kù)存表wLib總庫(kù)存數(shù)
總庫(kù)存金額TotalNum(int)
TotalMoney(Money)表4臨時(shí)表wInOut進(jìn)貨數(shù)
出貨數(shù)Quantity,
Sold3.ADO的使用方法.ADO2.0存在于VisualBasic6.0的兩個(gè)獨(dú)立的庫(kù)中第一個(gè)稱為ADODB,在References對(duì)話框中的名字是MicrosoftActiveXDataObjects2.0Library在這個(gè)庫(kù)中包含了所有的ADO對(duì)象。對(duì)于那些并不需要太多加強(qiáng)的ADO資源工程,應(yīng)該使用ADOR庫(kù)。在References對(duì)話框中這個(gè)庫(kù)稱為MicrosoftActiveXDataObjectsRecordset2.1Library這個(gè)庫(kù)只包含對(duì)Recordsets的支持。VisualBASIC6.0通過(guò)ADO控件和Recordset對(duì)象兩種方法來(lái)使用ADO.下面介紹一下Recordset對(duì)象的使用方法.在visualbasic中加入如下代碼:
dimmyConnectstrasstrng
dimmyRecordsetasNewADODB.recordsetmyConnectstr="PROVIDER=Microsoft.Jet.OLEDB.4.0;DataSource="&App.Path&"\ware.mdb;PersistSecurityInfo=False"myRecordset.CoursorLocation=AduseClientmyRecordset.Open“select*fromwDetail”,myConnectstr,adOpenKeyset,adLockPessimistic這樣就可以對(duì)商品明細(xì)表追加紀(jì)錄:myRecordset.AddNewmyRecordset.Fields("wareID")="000001"myRecordset.Fields("wareName")="Switch3500"myRecordset.Fields("wPrice")=4350myRecordset.Fields("wManufect")="Cisco"myRecordset.Update獲取表中的紀(jì)錄數(shù):recordcnt=myRecordset.Recordcount移動(dòng)紀(jì)錄指針myRecordset.MoveFirst‘移動(dòng)到表的第一條紀(jì)錄myRecordset.MoveLast‘移動(dòng)到表的最后一條紀(jì)錄myRecordset.MovePrevious
‘移動(dòng)到表的上一條紀(jì)錄myRecordset.MoveNext‘移動(dòng)到表的下一條紀(jì)錄刪除當(dāng)前紀(jì)錄myRecordset.Delete最后關(guān)閉紀(jì)錄集,釋放紀(jì)錄集變量myRecordset.CloseSetmyRecordset=Nothing4.SQL的使用
上面所用的方法,只適合于對(duì)單個(gè)表的簡(jiǎn)單操作。如果是對(duì)表的數(shù)據(jù)作復(fù)雜查詢,或數(shù)據(jù)統(tǒng)計(jì),用上述方法就非常不方便。一般情況下我們用SQL語(yǔ)言結(jié)合Connection對(duì)象實(shí)現(xiàn)SQL語(yǔ)句中最常用的是Select語(yǔ)句。該語(yǔ)句用來(lái)從數(shù)據(jù)庫(kù)表中檢索數(shù)據(jù)或者完成其他一些功能。為了使用這條語(yǔ)句你必須知道你要檢索的字段名稱,或者直接用星號(hào)來(lái)檢索所有字段。下面是Select語(yǔ)句的基本語(yǔ)法:
SELECT[ALL|DISTINCT][TOPxx[PERCENT]]select_list
FROMtable_name
[WHERE{search_criteria|join_criteria}[{AND|ORsearch_criteria}]]
[GROUPBY[ALL]aggregate_free_expression[,aggregate_free_expression….]]
[HAVINGsearch_conditions]
[ORDERBY{field_list}[ASC|DESC]]其中:ALL定義每一行都將返回,包括重復(fù)紀(jì)錄。DISTINCT定義只返回不重復(fù)的紀(jì)錄。TOP定義你需要的得到的返回紀(jì)錄的前幾條。在數(shù)字xx后用PERCENT來(lái)說(shuō)明只返回前面百分之幾條紀(jì)錄。select_list列出要檢索的表的列名。table_name列出要檢索的表名search_criteria列出要檢索的表的列名join_criteria列出一個(gè)表中用來(lái)和另一個(gè)表的某個(gè)列連接的列名aggregate_free_expression是一個(gè)不包含聚集的表達(dá)式。Field_list列出了數(shù)據(jù)排序的順序ASC定義按照升序排序DESC定義按照降序排序。下面我們來(lái)舉例說(shuō)明。你希望檢索商品名細(xì)表中的信息可使用如下語(yǔ)句:
SELECT*FROMwaredetial關(guān)鍵字ORDERBY要求列名以確定按哪一列排序。這里我們選定按wareID排序,如果你希望按列wareID的字母順序排列可采用下面的代碼:SELECTwareIDFROMwareDetialORDERBYwareID默認(rèn)是按升序排列如果想按降序排列可用如下代碼:SELECTwareIDFROMwareDetialORDERBYwareIDDESC如果你想選擇多列,使用下面的語(yǔ)句SELECTwareID,wareNameFROMwareDetialORDERBYwareID用WHERE關(guān)鍵字來(lái)限制選擇范圍。如果你想選擇wareDetial中wareName列值為“cisco6000”的行。你可用下面的代碼實(shí)現(xiàn):
SELECT*FROMwareDetialWHEREwareName=”cisco6000”O(jiān)RDERBYwareID除了SELECT語(yǔ)句,標(biāo)準(zhǔn)SQL語(yǔ)句還有INSERTUPDATEDELETE等,在此不再作具體介紹.實(shí)際的應(yīng)用經(jīng)常要對(duì)表中的某列或多列數(shù)據(jù)進(jìn)行數(shù)學(xué)運(yùn)算,這就需要如COUNT(),SUM(),AVG(),MAX(),MIN()等數(shù)學(xué)函數(shù)。下面對(duì)這些函數(shù)的用法作具體說(shuō)明。先建立一個(gè)與數(shù)據(jù)庫(kù)的連接dimmyConnectstrasstrngdimmyCntasNewADODB.connectionmyConnectstr="PROVIDER=Microsoft.Jet.OLEDB.4.0;DataSource="&App.Path&"\ware.mdb;PersistSecurityInfo=False"myCnt.OpenmyConnectstr若要產(chǎn)生某種商品的總進(jìn)貨數(shù)以及總出貨數(shù)可用以下代碼:exeStr=”insertintowInOutselectsum(wQuantity)asQuantity,sum(wSold)asSoldfromwAccountwherewareID=‘000001’”若要產(chǎn)生庫(kù)存的總數(shù)以及總庫(kù)存金額可用以下代碼:exeStr="insertintowLibselectsum(numInlib)astotalNu
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 浙江師范大學(xué)《氣壓與液壓傳動(dòng)》2023-2024學(xué)年第一學(xué)期期末試卷
- 產(chǎn)學(xué)研協(xié)同育人機(jī)制心得體會(huì)發(fā)言
- 長(zhǎng)春信息技術(shù)職業(yè)學(xué)院《商務(wù)計(jì)劃》2023-2024學(xué)年第一學(xué)期期末試卷
- 使用開源軟件減少軟件許可費(fèi)
- 產(chǎn)品功能技術(shù)演講模板
- 保險(xiǎn)市場(chǎng)應(yīng)對(duì)策略模板
- 業(yè)務(wù)操作-2020年房地產(chǎn)經(jīng)紀(jì)人《房地產(chǎn)經(jīng)紀(jì)業(yè)務(wù)操作》真題匯編
- 社團(tuán)參與與高中生活模板
- 農(nóng)科技講座模板
- 二零二五版養(yǎng)老機(jī)構(gòu)設(shè)施改造及智能化升級(jí)合同3篇
- 做好八件事快樂(lè)過(guò)寒假-2024-2025學(xué)年上學(xué)期中學(xué)寒假家長(zhǎng)會(huì)課件-2024-2025學(xué)年高中主題班會(huì)課件
- 【課件】寒假是用來(lái)超越的!課件 2024-2025學(xué)年高中上學(xué)期寒假學(xué)習(xí)和生活指導(dǎo)班會(huì)
- 2024-2025學(xué)年北師大版數(shù)學(xué)七年級(jí)上冊(cè)期末練習(xí)卷
- 2025年山東兗礦集團(tuán)公司招聘筆試參考題庫(kù)含答案解析
- 燃?xì)庥邢薰竟こ滩抗芾碇贫葏R編
- 2024年中國(guó)干粉涂料市場(chǎng)調(diào)查研究報(bào)告
- (自考)經(jīng)濟(jì)學(xué)原理中級(jí)(政經(jīng))課件 第二章 商品和貨幣
- ×××老舊小區(qū)改造工程施工組織設(shè)計(jì)(全面)
- 科創(chuàng)板知識(shí)題庫(kù)試題及答案
- GB/T 3324-2024木家具通用技術(shù)條件
- 《材料合成與制備技術(shù)》課程教學(xué)大綱(材料化學(xué)專業(yè))
評(píng)論
0/150
提交評(píng)論