資源描述:
《vb訪問sql server數(shù)據(jù)庫技術(shù)全揭密》由會員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、VB訪問SQLServer數(shù)據(jù)庫技術(shù)全揭密摘要:?????? 本文討論了VisualBasic應(yīng)用程序訪問SQLServer數(shù)據(jù)庫的幾種常用的方法,分別說明了每種方法的內(nèi)部機(jī)理并給出了每種方法的一個簡單的實(shí)例,最后比較了每種方法性能和優(yōu)缺點(diǎn)。?????? 一、引言 ?????? SQLServer是微軟推出的中小型網(wǎng)絡(luò)數(shù)據(jù)庫系統(tǒng),是目前最常用的數(shù)據(jù)庫系統(tǒng)之一。隨著SQLServer網(wǎng)絡(luò)數(shù)據(jù)庫應(yīng)用程序日益增多,這種Web數(shù)據(jù)庫應(yīng)用系統(tǒng)的正常運(yùn)行一般依賴于已存在的用戶數(shù)據(jù)庫。創(chuàng)建維護(hù)數(shù)據(jù)庫的工作可用SQLServer提供的SQLEnterpri
2、seManager工具來進(jìn)行,如能提供一種定制的數(shù)據(jù)庫管理工具,通過管理應(yīng)用程序來管理數(shù)據(jù)庫及其設(shè)備,對用戶來說無疑是最理想的。?????? VisualBasic作為一種面向?qū)ο蟮目梢暬幊坦ぞ?,具有簡單易學(xué),靈活方便和易于擴(kuò)充的特點(diǎn)。而且Microsoft為其提供了與SQLServer通信的API函數(shù)集及工具集,因此它越來越多地用作大型公司數(shù)據(jù)和客戶機(jī)—服務(wù)器應(yīng)用程序的前端,與后端的MicrosoftSQLServer相結(jié)合,VB能夠提供一個高性能的客戶機(jī)—服務(wù)器方案?! ?????? 二、VB訪問SQLServer數(shù)據(jù)的常用方法?????
3、? 使用VisualBasic作為前端開發(fā)語言,與SQLServer接口有幾種常用的方法,即:?????? ?、贁?shù)據(jù)訪問對象/Jet?????? ?、跒镺DBCAPI編程?????? ?、凼褂肧QLServer的VisualBasic庫(VBSQL)為DB庫的API編程?????? ?、躌DO遠(yuǎn)程數(shù)據(jù)對象(RemoteDataObjects)?????? ?、軦DO數(shù)據(jù)對象(ActiveDataObjects)?????? 1、數(shù)據(jù)訪問對象/Jet?????? VB支持DataAccessObjects(DAOs)的子集。DAO的方法雖然不是
4、性能最好的管理客戶機(jī)—服務(wù)器之間的對話方式,但它的確有許多優(yōu)點(diǎn)。DAO/Jet是為了實(shí)現(xiàn)從VB訪問Access數(shù)據(jù)庫而開發(fā)的程序接口對象。使用DAOs訪問SQLServer的過程如下:應(yīng)用程序準(zhǔn)備好語句并送至Jet,Jet引擎(MASJT200.DLL)優(yōu)化查詢,載入驅(qū)動程序管理器并與之通訊,驅(qū)動程序管理器(ODBC.DLL)通過調(diào)用驅(qū)動器(SQLSRVR.DLL)的函數(shù),實(shí)現(xiàn)連接到數(shù)據(jù)源,翻譯并向SQLServer提交SQL語句且返回結(jié)果。下面是一個用DAOs訪問SQLServer的VB實(shí)例?! ?????? 注釋:FormDeclaratio
5、ns?????? DimmydbAsDatabase?????? DimmydynasetAsDynasetオ?????? PrivateSubForm_Load()?????? Setmydb=OpenDatabase("",False,False,"ODBC;DSN=Myserver;WSID=LCL;DATABASE=sales")?????? Setmydynaset=mydbCreateDynaset("Select*fromCustomers")オ?????? EndSubァ ?????? 上述例子是以非獨(dú)占、非只讀方式打
6、開sales數(shù)據(jù)庫,并檢索Customers表中的所有字段。OpenDatabase函數(shù)的最后一個參數(shù)是ODBC連接字符串參數(shù),它指明了MicrosoftAccess連接到SQLServer所需要知道的一些內(nèi)容。其中“DSN”為數(shù)據(jù)源名,“WSID”為工作站名,“DATABASE”為所要訪問的數(shù)據(jù)庫名。?????? 2、利用ODBCAPI編程?????? ODBC(OpenDatabaseConnectivity)的思想是訪問異種數(shù)據(jù)庫的一種可移植的方式。與數(shù)據(jù)資源對話的公用函數(shù)組裝在一個稱為驅(qū)動程序管理器(ODBC.DLL)的動態(tài)連接中。應(yīng)用
7、程序調(diào)用驅(qū)動程序管理器中的函數(shù),而驅(qū)動程序管理器反過來通過驅(qū)動器(SQLSRVR.DLL)把它們送到服務(wù)器中。?????? 下面的代碼使用上面一些函數(shù)先登錄到一個服務(wù)器數(shù)據(jù)庫,并為隨后的工作設(shè)置了語句句柄。?????? GlobalgiHEnvAsLong?????? GlobalgiHDBAsLong?????? GlobalgiHStmtAsLong?????? DimmyResultAsinteger?????? DimmyConnectionAsSrting?????? DimmyBuffAsString*256??????
8、 DimmyBufflenAsInteger?????? IfSQLAllocEnv(giHEnv)<>SQL_SUCC