亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

VB應用程序訪問SQLServer方法探討

2019-11-18 17:46:50
字體:
來源:轉載
供稿:網友
摘要

  本文討論了VisualBasic應用程序訪問SQLServer數據的幾中常用的方法,分別說明了每種方法的內部機理并給出了每種方法的一個簡單的實例,最后比較了每種方法的性能和優缺點。

引言

   MicrosoftVisualBasic(簡稱VB)作為一種面向對象的可視化編程工具,具有簡單易學的,靈活方便和易于擴充的特點。而且Microsoft為其提供了與SQLServer通信的API函數集及工具集。因此它越來越多地用作大型公司數據和客戶機—服務器應用程序的前端。與后端的MicrosoftSQLServer相結合,VB能夠提供一個魯棒的、高性能的客戶機—服務器方案。

使用VisualBasic作為前端開發語言,與SQLServer接口有三種常用的方法,即:
*數據訪問對象/Jet
*為ODBCAPI編程
*使用SQLServer的VisualBasic庫(VBSQL)為DB庫API編程
本文將討論這三種VB應用程序管理SQLServer數據的方法,并比較每種方法的性
能和優缺點。

方法1.數據訪問對象/JetVisualBasic支持DataaccessObjects(DAOs)的子集。DAO的方法雖然不是性能最好的管理客戶機—服務器之間的對話方式,但它確有許多優點。使用DAOs訪問SQLServer的過程如下:應用程序準備好語句并送至Jet,Jet引擎(MASJT200.DLL)優化查詢,載入驅動程序管理器并與之通訊,驅動程序管理器(ODBC.DLL)通地調用驅動器(SQLSRVR.DLL)的函數,實現連接到數據源,翻譯并向SQLServer提交SQL語句且返回結果。下面是一個用DAOs訪問SQLServer的VB實例。
'FormDeclarations
DimmydbAsDatabase
DimmydynasetAsDynaset
EndSub

上述例子是以非獨占、非只讀方式打開sales
數據庫,并檢索Customers表中的所有字段。OpenDatabase函數的最后一個參數是ODBC連接字符串參數,它指明了MicrosoftAccess連接到SQLServer所需要知道的一些內容。其中“DSN”為數據源名,“WSID”為工作站名,

“DATABASE”為所要訪問的數據庫名。

方法2.用ODBCAPI編程

  ODBC(OpenDatabaseConnectivity)的思想是訪問異種數據庫的一種可移植的方式。與數據資源對話的公用函數組裝在一個稱為驅動程序管理器(ODBC.DLL)的動態連接中。應用程序調用驅動程序管理器中的函數,而驅動程序管理器反過來通過驅動器反過來通來驅動器(SQLSRVR.DLL)把它們送到服務器中。
用ODBCAPI編程,一般要用到以下一些函數。下面列出了常用的函數以及它們的功能。
函數功能
SQLALLocEnv初始化ODBC環境,返回環境句柄
SQLALLocConnect為連接句柄分配內存并返回連接句柄
SQLConnect連接一個SQL數據資源
SQLDriverConnect連接一個SQL數據資源,允許驅動器向用戶詢問信息
SQLALLocStmt為語句句柄分配內存并返回語句句柄
SQLExecDirect把SQL語句送到服務器
SQLFetchAdvances到結果集的下一行(或第一行)
SQLGetData從結果集的特定的一列取回數據
SQLFreeStmt釋放與語句句柄相關的資源
SQLDisconnect切斷連接
SQLFreeConnect釋放與連接句柄相關的資源
SQLFreeEnv釋放與環境句柄相關的資源
下面的代碼使用上面一些函數先登錄到一個服務器數據庫,并為隨后的工作設置了語句
句柄。
G|oba|giHEnvAsLong
G|oba|giHDBAsLong
G|oba|giHStmtAsLong
DimmyResultAsinteger
DimmyConnectionAsSrting
DimmyBuffAsString*256
DimmyBufflenAsInteger
IfSQLA||ocEnv(giHEnv)<>SQL_SUCCESSThen
MsgBox"A||ocationcouldn'thappen!"
Endif
ifSQL||ocConnect(giHEnv,giHDB)<>SQL_SUCCESSThen
MsgBox"SQLServercouldn'tconnect!"
Endif
myConnection="DSN=myServer;UID=|c|;PWD=;APP=ODBCTest;WS|D=LCL;DATABASE=sales"
myResult=SQLDriverConnect(giHDB,Test,form1.hWnd,myConnection.len(myConnection),
myBuff,256,myBufflen,SQL_DRIVER_COMPLETE_REQUIED)
myResult=SQLA||ocStmt(giHDS,giHStmt)
myResult=SQLFreeStmt(giHStmt,SQL_COLSE)
rssQL="Select*fromCustomersWhereCity="Wuhan""
myResult=SQLExecDirect(giHStmt,rsSQL,Len(rsSQL))

方法3.使用VBSQL對DB庫API編程

  DB庫是SQLServer的本地API,SQLServer的VisualBasic庫(VBSQL)為VisualBasic程序員提供API。從一定意義上說,VBSQL是連接VisualBasic程序到SQLServer的性能最好最直接的方式。VBSQL包含以下三個文件:


VBSQL.VBX包含庫函數,具有訪問重要的消息和處理錯誤的能力
VBSQL.BI包括所有的常量和變量說明
VBSQL.HLPWindows幫助文件,使用VBSQL的指南
使用VBSQL時,必需將VBSQL.BI加入到VisualBasic工程文件中,并確保VB程序運行時有VBSQL.VBX文件。
一個典型的VBSQL對話中,一般要用到以下這些函數。
函數功能
Sq||nit在客戶機上裝載DB庫
Sq|OpenConnection打開服務器連接,返回連接句柄
Sq|Cmd在客戶機上建立批處理命令
Sq|Exec向服務器提交批處理命令
Sq|rexu|ts把客戶機定位在第一條(或下一條)結果集的開端
Sq|NextRow驅動每個結果集的行之間的循環
Sq|Data訪問一個特定列的數據
Sq|C|ose切斷特定的連接
Sq|Exit切斷所有找開的連接
Sq|WinExit卸下DB庫
一般的DB庫API編程的過程是這樣的:先通過調用SqlInit對DB庫進行初始化,再調用
SqlConnection打開一個連接,然后就可做一些工作。下面的代碼是一個初始化DB庫并
登錄到服務器的通用例程。
PrivateSub|nitia|izeApp|ication()
DBL|B-VERS|ON●=Sq||nit●()
|fDBL|B_VERS|ON●=""Then
MsgBox"Couldnotinitia|izeDBL|B!Exitapp|ication.",MB_|CONEXCLAMAT|ON
End
Endif
EndSub
PrivateFunctionLoginToServer()Asinteger
loginToServer=SUCCEED
Status=Sq|SetloginTime(loginTimeOut)
|fgiSq|Conn<>0Then
Sq|C|ose(giSq|Conn)'關閉已打開的連接
giSq|Conn=Sq|OpenConnection(gsServerName,gsLogin|D,gsPassWord,ProgramName●,ProgramName●)
|fgiSq|Conn<>oThen
|iresu|t=Sq|Use(giSq|Conn,"Sales")
Else
LogintoServer=FA|L
End|f
EndFunction

性能比較
  以上三種訪問SQLServer的方法各有各的特點。DAOs方法是基于對象的,因而便于使用,但是它從VisualBasic到SQLServer的最慢的方式。ODBCAPI和VBSQL方法從本質上講是基于程序的。ODBCAPI方法通用性好,允許最強的互操作性,編程簡單,但速度慢于VBSQL方法。VBSQL方法通過VBSQL控件,提供了重要的SQL`Server前端應用程序所需的靈活性、強大功能和良好性能。它具有真正的事件驅動及錯誤處理能力,完全支持異步處理、游標和計算列等。這些都是VBSQL方法超出其它方法的優勢,但其編程稍復雜。至于實際使用哪一種接口方式,在很大程度上依賴于用戶的應用程序的具體情況而定。->


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产亚洲精品va在线观看| 日韩www在线| 国产日韩换脸av一区在线观看| 亚洲xxx视频| 亚洲一区二区三区四区在线播放| 日韩免费在线观看视频| 午夜精品久久久99热福利| 日韩免费av一区二区| 狠狠躁夜夜躁久久躁别揉| 久久亚洲综合国产精品99麻豆精品福利| 在线电影中文日韩| 国产精品www| 亚洲国产精品成人av| 日韩电影免费观看在线| 欧美激情一区二区三区成人| 亚洲欧美一区二区激情| 欧美激情亚洲综合一区| 91免费精品视频| 日韩精品视频在线观看免费| 亚洲精品综合精品自拍| 久久影视电视剧凤归四时歌| 久久精品中文字幕一区| 国产成人精品免费久久久久| 欧美在线观看www| 欧美成人免费va影院高清| 欧美猛少妇色xxxxx| 国产成人精品在线视频| 精品久久久久久国产| 久久91精品国产91久久跳| 亚洲精品影视在线观看| 热久久这里只有精品| 亚洲视频免费一区| 国产成+人+综合+亚洲欧美丁香花| 久久精品免费电影| 久久综合久久88| 国产成人精品日本亚洲| 欧美电影免费观看高清| 一区二区欧美久久| 92国产精品视频| 奇米四色中文综合久久| 欧美久久精品一级黑人c片| 亚洲天堂成人在线视频| 精品动漫一区二区三区| 国产欧美日韩精品丝袜高跟鞋| 97视频在线免费观看| 高清欧美性猛交xxxx黑人猛交| 欧美人交a欧美精品| 亚洲人成绝费网站色www| 在线播放国产一区中文字幕剧情欧美| 精品国产乱码久久久久久天美| 亚洲男人的天堂在线| 在线观看精品自拍私拍| 久久久久久av| 日韩av网址在线| 亚洲精品有码在线| 日韩av一区二区在线观看| 精品爽片免费看久久| 亚洲精品久久久久中文字幕二区| 国产精品免费一区| 国产精品男人爽免费视频1| 日韩欧美大尺度| 色综合亚洲精品激情狠狠| 91精品在线影院| 久久久av免费| 国产成人一区二区| xxxxx成人.com| 成人精品视频久久久久| 亚洲经典中文字幕| 久久91精品国产91久久久| 国产69精品99久久久久久宅男| 久久99亚洲精品| 欧美电影在线免费观看网站| 国产精品免费一区豆花| 57pao成人国产永久免费| 亚洲午夜久久久影院| 日韩av快播网址| 久久久久久久av| 国产欧美在线视频| 96精品久久久久中文字幕| 亚洲福利在线观看| 国产精品久久久久久久久男| 日韩一区二区精品视频| 亚洲性视频网站| 日本19禁啪啪免费观看www| 欧美精品福利在线| 久久天堂电影网| 久久久久这里只有精品| 亚洲xxxx在线| 精品久久久香蕉免费精品视频| 国产成人久久久精品一区| 日韩美女免费线视频| 性色av一区二区咪爱| 国产精品永久免费观看| 欧美人与性动交a欧美精品| 97视频免费观看| 欧美在线影院在线视频| 97在线视频精品| 亚洲精品久久久久久下一站| 久久夜色精品国产| 欧美亚洲视频在线看网址| 亚洲国产精品久久久久秋霞蜜臀| 97久久超碰福利国产精品…| 欧美成人精品三级在线观看| 欧美性色xo影院| 91精品国产综合久久久久久久久| 国产精品主播视频| 欧美午夜宅男影院在线观看| 奇米四色中文综合久久| 第一福利永久视频精品| 欧美做爰性生交视频| 国产精品va在线播放我和闺蜜| 欧美超级免费视 在线| 中文字幕欧美在线| 91在线视频免费| 久久久久国色av免费观看性色| 亚洲国产精品成人va在线观看| 亚洲最大在线视频| 日韩二区三区在线| 欧洲亚洲在线视频| 亚洲精品自拍第一页| 亚洲性日韩精品一区二区| 国产亚洲免费的视频看| 日韩精品极品在线观看播放免费视频| 日韩av电影手机在线观看| 九九热精品视频| 国产精品丝袜视频| 精品福利在线看| 成人激情在线观看| 久久伊人精品一区二区三区| 欧美大片第1页| 国产成人综合一区二区三区| 国产98色在线| 91香蕉嫩草神马影院在线观看| 亚洲区在线播放| 在线观看精品国产视频| 久久久久99精品久久久久| 日韩av快播网址| 国产精品av在线| 色老头一区二区三区| 日韩一中文字幕| 欧美日韩第一视频| 国产98色在线| 久久久电影免费观看完整版| 欧美激情18p| 国产一区二区三区网站| 亚洲激情视频在线观看| 2020欧美日韩在线视频| 亚洲免费人成在线视频观看| 日韩久久午夜影院| 成人国产在线视频| 蜜月aⅴ免费一区二区三区| 久久男人资源视频| 亚洲电影在线看| 成人欧美一区二区三区在线湿哒哒| 欧美日韩成人免费| 欧美亚洲视频在线观看| 97国产在线观看| 日韩美女免费线视频| 亚洲精品一区二区久| 日韩av一卡二卡| 97国产精品视频人人做人人爱| 国产精品久久不能| 大荫蒂欧美视频另类xxxx| 久久久久久这里只有精品|