通过ADO连接SQLServer数据库可以分为有源数据库连接和无源数据库连接。
下面我来介绍一下:
1 无源数据库连接
其实,“无源数据库”连接也并不是说不需要数据源,如果没有数据源则连接是纸上谈兵,只是不需要配置ODBC数据源,利用ADO(在vb与数据库中讲过)就可通过代码进行连接。
1.1建立无源数据库连接
首先要在菜单中“工程”—“引用”中选择Microsoft ActiveX DataObjects 2.6 Library
’定义连接对象和记录集
dim objcn as new connection
dim objrs as new recordset
dim strcn as string
dim strSQL as string
'建立数据库连接
Objcn.connectionstring="Provider=Microsoft.Jet.OLEDB.3.51;"& "Data Source="&App.Path &"\数据库\实例1.mdb"
Objcn.open
'执行查询命令,获得用户登录口令
StrSQL="select 口令 from 系统用户 where 用户名='"& UserName &"'"
Set objrs.activeconnection=objcn
Objrs.open(strSQL)
'判断有无查询结果
。。。
'关闭数据库连接,释放对象
Objcn.close
Set objrs=nothing
Set objcn=nothing
无源数据库连接则不用配置ODBC环境,可以省去手工设置DSN的麻烦,这种方法所编写的软件适应性广,又符合专业软件的要求。
2有源数据库的连接
有源数据库连接的首要任务是要注册数据源名称(DSN),通过配置ODBC环境,进行数据源的注册,然后才能在对数据库编程时,对数据源进行连接、访问和操作
下面我们先来说一下什么是ODBC
ODBC(Open Database Connectivity,开放数据库互连)是微软公司开放服务结构(WOSA,Windows Open Services Architecture)中有关数据库的一个组成部分,它建立了一组规范,并提供了一组对数据库访问的标准API(应用程序编程接口)。这些API利用SQL来完成其大部分任务。ODBC本身也提供了对SQL语言的支持,用户可以直接将SQL语句送给ODBC。
它的好处在于,不论是FoxPro、Access还是Oracle数据库,均可用ODBC API进行访问。由此可见,ODBC的最大优点是能以统一的方式处理所有的数据库。
ODBC数据源类型
用户DSN:计算机本地数据源,只能被当前用户使用
系统DSN:计算机本地数据源,可被任何具有权限的用户使用
文件DSN:可以不是计算机本地数据源,可被安装了相同驱动程序的用户共享connection对象在建立数据源连接时,默认使用MSDASQL(Microsoft OLE DBProvider for ODBC)驱动程序,所以在连接字符串中只需制定数据源名称即可,例如:objcn.open "DSN=myaccess"建立数据库连接
2.1创建Access数据库的ODBC数据源
(1),选择系统“开始--控制面板--小图标--数据源(ODBC)”命令,打开ODBC数据源管理器,单击添加,创建新数据源对话框
(2),选择表中的MicrosoftAccess Driver(*.mdb),单击完成,打开“ODBCMicrosoft Access 安装”对话框,输入数据源名称等信息
(3),单击选项,选择数据库后单击确定按钮
(4),单击确定关闭“ODBCMicrosoft Access 安装”对话框,新建的数据库名称显示在“ODBC数据源管理器”对话框
2.2创建有源数据库连接
创建数据源是进行有源数据库连接的第一步,下面同样是运用ADO对象模型的主要元素Connection(连接)进行源数据库连接。
ConnectionString是Connection对象的属性名称,提供数据提供者或服务提供者打开到数据源的连接所需要的特定信息,包括Database、DSN、UID等。
(1) Database:字符串表达式,指定服务器上的数据库名称。
(2) UID:字符串表达式,为ODBC数据源指定用户标识(用户账号名)。
(3) PWD:字符串表达式,为ODBC数据源指定用户口令。
(4) DSN:字符串表达式,指定连接的ODBC数据源名称。
’定义
Dim objrs as recordset
'用于保存数据源记录集
Dim objcn as connection
’用于创建数据源连接
Dim isneedsave as boolean
'建立数据库连接
Set objcn =new connection
Objcn.open "DSN=实例2DSN"
Set objrs=new recordset
With objrs ’设置查询
.cursorlocation=aduseclient
.cursortype=adopenstatic
.locktype=adlockoptimistic
.open"select * from 系统用户",objcn
End with
’关闭释放数据库连接
Set objrs=nothing
Objcn.close
Set objcn=nothing
有源数据库连接首先要配置ODBC环境,注册数据源,这种方法有一定的局限性,当程序最终完成并分发到用户手中后,还需要为用户配置ODBC,而且由于参数内容不一,配置时不宜把握。