ImageVerifierCode 换一换
格式:DOCX , 页数:17 ,大小:23.19KB ,
资源ID:5115660      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-5115660.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(VB访问SQL Server数据库Word下载.docx)为本站会员(b****1)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

VB访问SQL Server数据库Word下载.docx

1、Dim mydb As Database Dim mydynaset As Dynaset Private Sub Form_Load() Set mydb = OpenDatabase(, False, False, ODBC; DSN=Myserver; WSID=LCL; DATABASE = sales) Set mydynaset = mydb CreateDynaset(Select*from CustomersEnd Sub 上述例子是以非独占、非只读方式打开sales数据库,并检索Customers表中的所有字段。OpenDatabase函数的最后一个参数是ODBC连接字符串参

2、数,它指明了Microsoft Access连接到SQL Server所需要知道的一些内容。其中“DSN”为数据源名,“WSID”为工作站名,“DATABASE”为所要访问的数据库名。2、利用ODBC API编程 ODBC(Open Database Connectivity)的思想是访问异种数据库的一种可移植的方式。与数据资源对话的公用函数组装在一个称为驱动程序管理器(ODBC.DLL)的动态连接中。应用程序调用驱动程序管理器中的函数,而驱动程序管理器反过来通过驱动器(SQLSRVR.DLL)把它们送到服务器中。下面的代码使用上面一些函数先登录到一个服务器数据库,并为随后的工作设置了语句句柄

3、。Global giHEnv As Long Global giHDB As Long Global giHStmt As Long Dim myResult As integer Dim myConnection As Srting Dim myBuff As String*256 Dim myBufflen As Integer If SQLAllocEnv(giHEnv)SQL_SUCCESS Then MsgBoxAllocation couldn注释:t happen!End If If SQLAllocConnect(giHEnv,giHDB)MsgBox SQL Server c

4、ouldn注释:t connect!myConnection=DSN=myServer;UID=LCL;PWD=;APP=ODBCTest;WSID=LCL;DATABASE=salesmyResult=SQLDriverConnect(giHDB,Test,form1.hWnd,myConnection.len(myConnection),myBuff,256,myBufflen,SQL_DRIVER_COMPLETE_REQUIED) myResult=SQLAllocStmt(giHDS,giHStmt) myResult=SQLFreeStmt(giHStmt,SQL_COLSE) r

5、sSQL=Select * from Customers Where City = HunanmyResult = SQLExecDirect(giHStmt,rsSQL,Len(rsSQL) 3、使用VBSQL对DB库API编程 DB库是SQL Server的本地API,SQL Server的Visual Basic库(VBSQL)为Visual Basic程序员提供API。从一定意义上说,VBSQL是连接Visual Basic程序到SQL Server的性能最好最直接的方式。VBSQL包含以下三个文件:VBSQL.VBX: 包含库函数,具有访问重要的消息和处理错误的能力 VBSQL.BI

6、:包括所有的常量和变量说明 VBSQL.HLP:Windows帮助文件,使用VBSQL的指南 使用VBSQL时,必须将VBSQL.BI加入到Visual Basic工程文件中,并确保VB程序运行时有VBSQL.VBX文件。一般的DB库API编程的过程是这样的:先通过调用SqlInit对DB库进行初始化,再调用SqlConnection打开一个连接,然后就可做一些工作。下面的代码是一个初始化DB库并登录到服务器的通用例程。Private Sub InitializeApplication() DBLIB_VERSION=SqlInit() If DBLIB_VERSION=Then Could

7、not initialize DBLIB!Exit application., MB_ICONEXCLAMATION End Sub Private Function LoginToServer() As integer loginToServer=SUCCEED Status%=SqlSetloginTime%(loginTimeOut) If giSqlConn0 Then SqlClose(giSqlConn) 注释:关闭已打开的连接 giSqlConn=SqlOpenConnection(gsServerName, gsLoginID, gsPassword, ProgramName,

8、 ProgramName) liresuit=SqlUse(giSqlConn,SalesElse LogintoServer=FAIL End Function 4、RDO 远程数据对象(RemoteData Objects) 要讨论RDO,就必然要谈到DAO。RDO是从DAO派生出来的,但两者很大的不同在于其数据库模式。DAO是针对记录(Records)和字段( Fields),而RDO是作为行(Rows)和列(Columns)来处理。也就是说DAO 是ISAM模式,RDO是关系模式。此外DAO是访问Access的Jet引擎(Jet是ISAM)的接口,而RDO则是访问ODBC的接口。可见,

9、RDO是综合了DAO/Jet、VBSQL/DBLib以及ODBC的优点的对象(Object)。需要强调的是,RDO是包裹着ODBC API的一层薄薄的外壳, 被设计成在后台(服务器端)有数据库存在的前提下运行,同时也是针对SQL Server和Oracle而特别设计的。RDO的优势在于它完全被集成在VB之中。此外,直接访问SQL Server存储过程、完全支持T-SQL、T-SQL调试集成在开发环境中、Visual Database Tools的集成化等,也是RDO的长处。在RDO的对象和集合中,有很多对数据库的状态和设定进行操作的属性(Property),以及对数据库进行操作的方法(Meth

10、od)。利用这些,从RDO2.0起就可以开发事件驱动的数据库应用程序。RDO对象与VB中其他对象的概念相同。与VB用的ActiveX控件(以往称为Custom Control或OCX、VBX)相似的是,RDO也带有属性和方法;但同Spread、InputMan等普遍应用的ActiveX控件不同的是,RDO没有自己的用户界面,因而可以和VB标准的Timer控件归为同一类。当然也可以将RDO看作调用ODBC API函数,进而对后台数据库操作加以控制的对象。在RDO的属性和方法中,包含了对单个的ODBC API函数以及一连串API函数的调用。rdoEngine对象 最初调用RDO对象以及RDC(远程

11、数据控件)时,自动生成rdoEngine对象的附带事件(incident)。rdoEngine用于对RDO全局属性的参数、选项进行设置,是在RDO的阶层结构内处于最上层的对象,包含了所有的其他对象。rdoEngine对象与DAO/Jet不同,虽然被多个应用程序共享,但体现rdoEngine对象的设定值的属性却并不共用,而是在各自的应用程序的程序界面中对其分别加以设定。这些设定值对其他使用RDO以及RDC的应用程序没有任何影响。rdoEngine不是集合的要素,而是重新定义的对象,rdoEngine对象不能被追加作成对象属性的初值。rdoEnvironment对象 RDO对象在自动创建rdoEn

12、gine对象时,将rdoEnviroment对象的初始值生成并保存为rdoEnviroments(0)。一般情况下,应用程序中不必追加rdoEnvironment对象,大多只需对已有的rdoEnviroments(0)进行操作就可以了。只有在支持一个以上事务(Transaction),需要将用户名和口令信息分别处理的情况下,利用rdoCreateEnvironment方法将特定的用户名和口令值做成新的rdoEnvironment对象。在这个方法中可以指定固有名、用户名和口令,如果所指定的值与rdoEnvironments集合的已经存在的成员名称相同,会产生错误。新建的rdoEnvironmen

13、t对象自动追加在rdoEnvironments集合的最后。调rdoCreateEnvironment方法时,其name参数可以是长度为0的文字列,这时新的rdoEnvironment对象将不会被追加在rdoEnvironments集合之中。rdoConnection对象 rdoConnection对象用于同SQL Server的连接管理。下面是与SQL Server连接的例子。用OpenConnection方法的一个实例。设定的DSN为MyDSN: Dim Cn As rdoConnection Dim En As rdoEnvironment Dim Conn As String Conn

14、= DSN = MyDSN; UID = Jacob; amp; PWD = 123456; DATA BASE = MyDb;Set Cn= En.OpenConnection(, rdDriverPrompt, False, Co nn) Set Cn= En.OpenConnection(Prompt:= rdDriverPrompt, Rea dOnly:= False,Connect:= Cnn) 用EstablishConnection方法的一个实例。这里以独立的rdoConnection对象为例说明与SQL Server的连接。Public WithEvents Eng As r

15、doEngine Public WithEvents Cn As rdoConnection Set Eng = New rdoEngine Set Cn = New rdoConnection With Cn .Connect = UID = ; PWD = ;DATABASE = pubs; DSN = biblio.LoginTimeout = 5 .EstablishConnection rdoDriverNoPromt, True, rdAsyncEna ble End With 在这个例子中,Form_Load函数对rdoEngine和rdoConnection对象进行初始化。这里

16、有一点需要注意,rdoConnection对象是处于独立的状态之下,即使是处于未连接状态也可以设置属性的值。接下来是rdoConnect对象的事件处理程序。从RDO 2.0起可以实现异步方式(rdAsyn cEnable),EstablishConnection就设定为该值。在异步状态下,不必等待与数据库的连接,程序可以迅速从Form_Load 函数中退出。 然后是BeforeConnect事件,该处理在与数据库的连接开始以前被激发,此时不能进行有关终止连接的操作:Private Sub Cn_BeforeConnect(ConnetString As String, Pro mpt As V

17、ariant) 正在连接 ConnectString, vbOKOnly, 连接前End Sub连接完成之后的事件处理:Private Sub Cn_Connect(ByVal ErrorOccurred As Boolean) Dim M As String If ErrorOccurred Then For Each er In rdoErrors M = M er amp; vbCrLf amp; M Next 连接失败连接成功这是确认连接状态的测试代码 Cn.Excute use pubsRDO连接处理结束后,在该事件中确认连接成功与否。连接成功的情况下ErrorOccurred返回F

18、alse,失败时为True,由此可以对rdoErrors集合进行检测:Private Sub Eng_InfoMessage() Debug.Print er RdoErrors.Clear 不能与SQL Server连接的原因多种多样,有可能是由于对数据库的访问权限、网络连接问题、数据库表的信息错误、SQL Server同时连接的许可数、资源不足等等,具体情况需要与网络管理员商量。 断开连接的操作非常简单,但又很重要,因为RDO不提供自动断开的功能。Cn.Close Set Cn = Nothing 注释:释放对象所占的内存资源 En.Close Set En = Nothing 注释:释放

19、对象所占的内存资源 VB是对象语言,Form、ActiveX控件也都是对象。使用对象后必须养成将对象设为Nothing把它从内存中释放的编程习惯。这样可以预防很多不可预测错误,往往程序中发生原因不明的错误时,其原因就在于此。5、ADO 数据对象(Active Data Objects) ADO是基于全新的OLE DB技术,OLE DB可对电子邮件、文本文件、复合文件、数据表等各种各样的数据通过统一的接口进行存取。随着ActiveX控件的升级(Windows 98的ActiveX 5.0),RDO将被以ActiveX技术为基础的ADO接口所替代。下面将介绍基于ActiveX技术的ADO访问SQL

20、 Server 6.5数据库的技术和方法。基于浏览器的ADO接口常用函数如下:(1)取当前的工作数据库 由于管理任务一般都必须在Master库中完成,因此在执行管理任务之前,最好保存当前工作库,以便完成任务之后再切换回原来的任务。Public Function SQLGetCurrentDatabaseName(Cn As ADODB.Connection) As String Dim sSQL As String Dim RS As New ADODB.Recordset On Error GoTo errSQLGetCurrentDatabaseName sSQL=select Curre

21、ntDB=DB_NAME ( )RS.Open sSQL, Cn SQLGetCurrentDatabaseName=Trim $ (RS! CurrentDB) RS.Close Exit Function errSQLGetCurrentDatabaseName:SQLGetCurrentDatabaseName=(2)取SQL Server安装目录下的DATA子目录路径 取SQL Server的设备文件缺省目录,返回如D:MSSQL DATA。Public Function SQLGetDataPath(Cn As ADODB.Connection) As String Dim sFul

22、lPath As String On Error GoTo errSQLGetDataPath sSQL=select phyname from master.sysdevices where name=注释:master注释:sFullPath = RS! phyname SQLGetDataPath=Left $ (sFullPath, Len(sFullPath) -10) 注释:MASTER.DAT的大小 errSQLGetDataPath:SQLGetDataPath=(3)创建一个新数据库 Public Function SQLCreateDatabase65 (Cn As ADO

23、DB.Connection,sDBName As String, sDataDeviceName As String, nDataSize As Integer, Optional sLogDeviceName, Optional nLogSize) As Boolean On Error GoTo errSQLCreateDatabase65 Dim sDB As String sDB =SQLGetCurrentDatabaseName(Cn) sSQL = USE masterCn.Execute sSQL sSQL =CREATE DATABASE sDBName sSQL = sSQL amp; ON sDataDeviceName amp;= nDataSize If Not IsMissing(sLogDeviceName) And Not IsMissing(nLogSize) Then LOG ON sLogDeviceName amp;amp; nLogSize USE sDB SQLCreateDatabase65 = True Exit Function errSQLCreateDatabase65:On Error Resume Next USE

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2