資源描述:
《SQL語句在VB數(shù)據(jù)庫編程過程中的應(yīng)用》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、SQL語句在VB數(shù)據(jù)庫編程過程中的應(yīng)用摘要:本文列舉實(shí)例分析數(shù)據(jù)庫編程過程中經(jīng)常遇到的查詢、統(tǒng)計(jì)、更新等幾個(gè)環(huán)節(jié)中SQL語句的應(yīng)用。關(guān)鍵字:SQL;多表查詢;SQL統(tǒng)計(jì)函數(shù);數(shù)據(jù)的更新Abstact:Thistextenumeratestheexampletosearchapplicationofthequeryandstatistic,renewetc.thatsometachesmetwithinSQLprogrammeprocessusually.Keywords:SQL;searchfrommanyform;SQLstatisticalfuncti
2、on;renewalofdata結(jié)構(gòu)化查詢語言SQL是操作數(shù)據(jù)庫的國際標(biāo)準(zhǔn)語言,在現(xiàn)今的大多數(shù)數(shù)據(jù)庫軟件系統(tǒng)中均得到支持。在開發(fā)VB數(shù)據(jù)管理軟件過程中,利用SQL可以使數(shù)據(jù)的操作大為方便,使VB與數(shù)據(jù)庫的聯(lián)系更加緊密。1句SQL語句通??梢酝瓿梢郧坝稍S多條語句才能完成的復(fù)雜的數(shù)據(jù)庫查詢操作,具有較高的工作效率。1如何在VB中調(diào)用SQL語句首先使用OpenDatabase打開一個(gè)數(shù)據(jù)庫,建立Database對象,例如db。如果是SELECT語句,使用db.CreateRecordset("SELECT...")就可以了。如果是其他SQL語句,使用db.Exe
3、cute("...")來執(zhí)行。在VB中,SQL語句往往作為某些特定方法的參數(shù)而得以執(zhí)行(沒有FoxPro等數(shù)據(jù)庫軟件那樣直截了當(dāng)),比如可以把SQL語句作為Execute方法的1個(gè)字符串參數(shù)而執(zhí)行,其格式如下:object.ExecuteSQL-statement,options 在其中的SQL-statement字符串中,可以使用標(biāo)準(zhǔn)的SQL語句,如:SELECT、INSERT、DELETE及UPDATE等。下面的例子是在數(shù)據(jù)庫對象DB中執(zhí)行SQL語句,從當(dāng)前數(shù)據(jù)庫的EMployees數(shù)據(jù)表中,選擇字段LastName='King'的所有記錄,并將這些
4、記錄的LastName和FirstName這2個(gè)字段的內(nèi)容,保存到同一數(shù)據(jù)庫的Backup數(shù)據(jù)表中:DB.Execute("SELECTLastName,FirstNameINTOBackupFORMEmployeesWHERELastName='King';")2多表查詢在數(shù)據(jù)庫的操作中,常常會(huì)涉及多表查詢。所謂多表查詢,是指將兩個(gè)以上的表中的內(nèi)容通過相關(guān)字段連接在一起。這些查詢當(dāng)然可以通過其它算法,利用VB程序本身來實(shí)現(xiàn)。但是如果利用VB中的SQL多表查詢語句,可將兩個(gè)表中的數(shù)據(jù)通過兩個(gè)表中的共同字段連接來。則求解過程大為簡化,程序效率大為提高。以工資
5、庫.mdb的數(shù)據(jù)庫為例,數(shù)據(jù)庫中有一個(gè)名為“基本工資表”數(shù)據(jù)表,該數(shù)據(jù)表的字段有:職工號(hào)、部門編號(hào)、職工姓名、基本工資、應(yīng)發(fā)工資、實(shí)發(fā)工資等。另一個(gè)為部門表,該數(shù)據(jù)表的字段有部門編號(hào)、部門名稱。由于基本工資表沒有部門名稱字段在瀏覽基本工資表時(shí)為了查詢部門名稱可以通過SQL語句將基本工資表和部門表的數(shù)據(jù)通過部門編號(hào)字段連接起來。2.1界面設(shè)計(jì)如下圖1所示:6圖12.2實(shí)現(xiàn)代碼設(shè)計(jì)Functionbrsex()‘瀏覽時(shí)如果表中的性別字段值通過單選按鈕顯示IfData1.Recordset.性別="男"Thenopt_man.Value=Trueopt_fem.
6、Value=FalseElseopt_man.Value=Falseopt_fem.Value=TrueEndIfEndFunctionFunctionbrdepart()‘根據(jù)基本工資表的部門編號(hào)查詢部門表中的部門名稱。deid=Data1.Recordset.部門編號(hào)ssql="select*from部門表where部門編號(hào)='"&deid&"'"Data2.RecordSource=ssqlData2.RefreshEndFunctionPrivateSubcmd_first_Click()Data1.Recordset.MoveFirstCallb
7、rsexCallbrdepartEndSubPrivateSubcmd_last_Click()Data1.Recordset.MoveLastCallbrdepartCallbrsex6EndSubPrivateSubcmd_next_Click()IfData1.Recordset.EOFThenBeepMsgBox"已到文件尾部!",,"提示"Data1.Recordset.MoveLastElseData1.Recordset.MoveNextIfData1.Recordset.EOFThenBeepMsgBox"已到文件尾部!",,"提示"Dat
8、a1.Recordset.MoveLastEndIfCallbrs