维普资讯 http://www.cqvip.com 山西电子技术 2007年第3期 软件天地 VB应用程序访问SQL Server数据库方法的比较 陈三丽 (太原师范学院计算机中心,山西太原030012) 摘要:讨论了Visual Basic应用程序访问SQL Server数据库的几种常用的方法,分别说明了每种方法的内部 机理并给出了每种方法的一个简单的实例,最后比较了每种方法的性能和优缺点。 关键词:VB;SQL Serv ̄;DAO;ODBC;API;数据库 中图分类号:TP31 文献标识码:A O引言 Microsoft Visual Basic(简称Ⅶ)作为一种面向对象的可 视化编程工具,具有简单易学的,灵活方便和易于扩充的特 点。而且Microsoft为其提供了与SQL Server通信的API函 数集及工具集。因此它越来越多地用作大型公司数据和客 户机一服务器应用程序的前端。与后端的Microsoft SQL Server相结合,VB能够提供一个最佳的、高性能的客户机一 服务器方案。 etS mydyrmset=mydb Cr ̄teDynaset( Select*from Cus. tmeors") End Sub 上述例子是以非独占、非只读方式打开sales数据库,并 检索Customers表中的所有字段。OpenDatabase函数的最后 一个参数是ODBC连接字符串参数,它指明了Microsoft Ac. ceSS连接到SQL Server所需要知道的一些内容。其中 “DSN”为数据源名,“WSID'’为工作站名,“DATABASE”为所 要访问的数据库名。 1.2用01)BCAPI编程 1 VB访问SQL Server数据库的常用方法 使用Visual Basic作为前端开发语言,与SQL erveSr接 口有三种常用的方法,即: 0咧Open Database Connectivity)的思想是访问异种 数据库的一种可移植的方式。与数据资源对话的公用函数 组装在一个称为驱动程序管理器(0 .DLL)的动态连接 中。应用程序调用驱动程序管理器中的函数,而驱动程序管 理器反过来通驱动器(s(!I VR.DLL)把它们送到服务器 中。用ODBC API编程,一般要用到以下一些函数。下面列 出了常用的函数以及它们的功能。 函数 SQLALLocEnv SQLConnect s erConnect 1)数据访问对象DAO/Jet 2)用ODBC API编程 3)使用SQL Server的Visual Basic库(VBsQL)为DB库 API编程 本文将讨论这三种VB应用程序管理SQL Server数据 的方法,并比较每种方法的性能和优缺点。 1.1数据访问对象DAO/Jet 功能 初始化ODBC环境,返回环境句柄 连接一个sQL数据资源 Visual Basic支持Data Access Objctes(DA0S)的子集。 DAO的方法虽然不是性能最好的管理客户机一服务器之间 的对话方式,但它确有许多优点。使用DAO访问SQL Serv. eI"的过程如下:应用程序准备好语句并送至Jet,Jet引擎 (MASJT200.Du,)优化查询,载入驱动程序管理器并与之通 讯,驱动程序管理器(0I)I .DLL)通过调用驱动器(SQL. SRVI ̄DLL)的函数,实现连接到数据源,翻译并向SQL Server提交SQL语句且返回结果。下面是一个用DAO访问 SQL Server的VB实例。 ’Form Declarations Dim mydb As Database DimmydynasetAsDynaset SQLALLocC ̄rmect为连接句柄分配内存并返回连接句柄 IⅡJ冀:个s1爵思 QL数据资源’允许驱动器拥户询 为语句句柄分配内存并返回语句句柄 把SOL语句送到服务器 从结果集的特定的一列取回数据 SQLALLocStmt SQLExecDirect SQLGetData SQLFetchAdvances到结果集的下一行(或第一行) SQLFreeSmat SQLDisconnect 释放与语句句柄相关的资源 切断连接 SQLFreeConnect 释放与连接句柄相关的资源 SQLFreeEnv 释放与环境句柄相关的资源 下面的代码使用上面一些函数先登录到一个服务器数 PrivateSubForm—Load() etmydb=OpenDaStabase( ,False,Fale,s ODBC;DSN=My. 据库,并为随后的工作设置了语句句柄。 Global giHEnvAsLong server;WSID=LCL;DATABASE=sales") 收稿日期:2006—09—19作者陈三丽女4O岁硕士副教授 维普资讯 http://www.cqvip.com 山西电子技术 2007年 Global g ̄HDB.As Long Global giHStmt As Long Dim myResult As mteger Dim myCo ̄ecfion As String Dim myBuff As String*256 Dim myBuflfen As Integer If sI 妣nv(giI' ̄nv)<>SQL—SUCCF ̄Then Msg[ ̄x"AUocation couldn’t happen! End if If SQLUoeConnect(giHEnv,mHDB)<>SQL—SUCCESS Them M sQLServer couldn’t oonnect! End if myConnecfion= DSN=myServer;UID=IcI;PWD=;APP= ODBCTest;WSID=LCL;DATABASE=sales" myResult=SOLDriv ̄ect(giHDB,Test,form1.hWnd, myConnection.1en(myConnection), myBuff,256,myBuffl肌,sc 一DRIⅥ'R—COMPLETE—RE一 (1UIED) myResult=SQLAllocStmt(giHDS,giHStmt) myResult=SO.LFreeStmt(giHStmt,SQL—CO【 SE) rsSOL= Select fromCustomersWhereCity= 矗” myResult=s( Ex Direct(giHStmt, 5QL,Lem(rsSQL)) 1.3使用VBSQL对DB库API编程 DB库是SOL Sel-ver的本地API,SOL Server的Visual Basic库(V】3SQL)为Visual Basic程序员提供API。从一定意 义上说,VBSQL是连接Visual Basic程序到SOL ̄'ver的性 能最好最直接的方式。VBSQL包含以下三个文件: 1)VBSQL.VBX包含库函数,具有访问重要的消息和 处理错误的能力 2)V】3SQL.BI包括所有的常量和变量说明 3)V】3SQL.HLP Windows帮助文件,使用VBSQL的指 南 使用VBSQL时,必需将V13SQL.BI加入到Visual Basic 工程文件中,并确保VB程序运行时有VBSQL.VBX文件。 一个典型的ⅦsQL对话中,一般要用到以下这些函数。 函数 功能 SqUnit 在客户机上装载DB库 SqlOpenCamecfion打开服务器连接,返回连接句柄 SqlCmd 在客户机上建立批处理命令 SqlExec 向服务器提交批处理命令 把客户机定位在第一条(或下一条)结果 集的开端 SqlNextRow 驱动每个结果集的行之间的循环 SqlData 访问一个特定列的数据 sqla ̄ 切断特定的连接 sql ̄t 切断所有找开的连接 SqlWinEmt 卸下DB库 一般的DB库API编程的过程是这样的:先通过调用 Sqllnit对DB库进行初始化,再调用SqlConneetion打开一个 连接,然后就可做一些工作。下面的代码是一个初始化DB 库并登录到服务器的通用例程。 Private Sub InitializeApplication() DBLlBⅦRSl0N¥=Sqllnit¥() 一个系统函数,返回数据 库DB-Library的版本号。 If DBLIB—VERSION¥= Thel1 MSgBo Could not initialize DBL ̄!Exit application. , M旧一lC0NEXC1。AMAT10N End End if End Sub Private Function LoginToServer()As integer LoginToServer=SUOc】 D Status%=SqlSetloginTime%(1oginTimeOut) If g ̄SqlConn<>0 Then SqlClose(g4SqlConn) gisq1Corm=SqlOpenConneetion(gsServerName,gsLoginlD, gsPassword,Progr amNalne¥,ProgramName¥) Engif If giSqlConn<>0Then liresult=SqlU ̄(mSqlConn, ) ElSe LogintoServer=F L Endif End Function 2性能比较 以上三种访问SQL Server的方法各有各的特点。DAOs 方法是基于对象的,因而便于使用,但是它是从Visual Basic 到SOL ̄'ver的最慢的方式。ODBCAPI和VBSQL方法从 本质上讲是基于程序的。ODBC API方法通用性好,允许最 强的互操作性,编程简单,但速度慢于VBSQL方法。VB— SOL方法通过VBSQL控件,提供了重要的SOL ̄l'ver前端 应用程序所需的灵活性、强大功能和良好性能。它具有真正 的事件驱动及错误处理能力,完全支持异步处理、游标和计 算列等。这些都是VBSQL方法超出其它方法的优势,但其 编程稍复杂。至于实际使用哪一种接口方式,在很大程度上 依赖于用户的应用程序的具体情况而定。 参考文献 [1]飞思科技产品研发中心,Visual Basic灵感编程[M].北 京:电子工业出版社,2002. [2] 张莉,王强.SQL SERVER数据库原理及应用教程 [M].北京:清华大学出版社,2003. [3]苏啸.数据库原理与SOL SERVER2000教程[M].北 京:北京工业大学出版社,2002. (下转第84页) 维普资讯 http://www.cqvip.com 山西电子技术 2007年 The Introduction of Normally Applied Multimedia Video and Audio File Structure Cui Xue-min Zhang Li Zhao Wen-jing ̄ (1.Kumning UniversityofScience and Technology,Kunming Yunnan 650051,China; 2.Yunnan P阳vincial Military Command,Kunming Yunnan 650051,Chian) Abstract:The paper mainly gives a devil introduction on the applied scope,the progress of their development,the character,the advantage and disadvantage of the normally applied multimedia video and audio file structure。including FLASH、AVI、WMV、ASF、 MPE 、MOV、RM、RMVB、WAV、MIDI、WMA,and SO on.The apper also naalyzes their develop/gn tendency in future linkign with the developign condition nowadays. Key words:multimedia;file;structure (上接第68页) hTe Study on the Access for Visual Basic AP to SQL Server Database ChenSaMi (Department ofComputer C_ ̄zter,Taiyuan Terwhers College,Taiyuan Shanxi 030012,Chain) Abl泊mct:The item discusses some usual methods with which Visual Basic application programs can access SQL Server Database, nad explains the interior principle with an signle illustration given,in the end the acpadty,strongpoint and shortcomign is ocmpa ̄1. Key wm-ds:VB;SQL Servre;DAO;ODBC;API;database (上接第70页) 北京:人民邮电出版社,2005 [2]李晓拮.SQL Server 2000管理及应用系统开发[M]. Personnel Administrating System in Enterprises Liu San.n1an (Dept.ofComputer Science and Technology,Shanzi Pol ̄eAcademy,Taiyaun Shanxi 030021,Chian) Absh t:The article introduces the characteristic of enterprise personal administration systme,discusses its exploitation environ— merit and technology,the structure and database of system is designed,also the system is tested.Finally the result of system testign is ̄lyzed. Keyw ̄xls:permnal administration;system structure;database;systme tests (上接第78页) 高数据传输速率、良好的覆盖性能、逐步提高的移动能力, 总之,建立一个3G、WiFi、WiMAX和有线宽带接人等多 WiMAX的运营模式即将成熟。WiMAX技术将会为中国信 种技术的融和,多层次,全方位无缝覆盖,协同工作的网络, 息产业带来机遇和挑战,它将如何改变人们的通信方式,让 可最大程度的满足客户的需要,保障中国信息产业的高速发 我们拭目以待。 展。 参考文献 5结束语 [1]802.16WorkignGroup,http://www.ieeeS02.org/16. 虽然WiMAX技术的发展目前还不完全成熟,其前景还 [2]WiMAX Forum,http://www.WiMAX ̄rum.org. 存在一些不确定的因素,例如wiMAX要适应各个国家的频 [3]IEEE Std802.16,IEEE Standard for local nad metropoli— tan area network part 16:Air interface for fixed broad— 谱划分就不是一件容易的事。不过,随着IEEE802.16系列 标准的不断完善以及WiMAX论坛对其应用的推动,凭借其 band wire.1ess access systme[S]. WiMAX and Its Prospect of Application in China Qin Wei Dil1g Xu—xign Zhang Cheng (College ofPhysicsandElcetronicInformation,AnhuiNormal Uni ̄orsity,w “Anhui 241000,Chian) Ahstr ̄t:Based on the broadband wireless access t ̄hnology that is l1ig}lIy developed,this paper introduces the technology and appliaction ofWiMAXandthedevelopmentofit athomeand abroad.Meanwhileit alsodiscussesthe relationsbetw ̄.nWiMAX,Wi— Fi and 3G.then it presents the outlook for the appliaction of WiMAX in China. eKy ̄m,ds:WiMAX;broadband wireless access;Wi—Fi;3G;application