VB 6.0 与 SQL Server 的两种连接

Visual Basic 6.0与 SQL Server 的两种连接

摘 要:本文介绍了Visual Basic 6.0应用程序通过ADO连接Microsoft SQL Server的两种方法,即有源数据库连接和无源数据库连接,分别说明了两种连接方法的内部机制,并以实例比较两种方法的优缺点。

关键词: ADO;ODBC;DSN;数据库

VB通过ADO连接SQL Server数据库可以分为有源数据库连接和无源数据库连接,区别它们看是否使用了DSN(数据源名称)来决定。

1无源数据库连接

其实,“无源数据库”连接也并不是说不需要数据源,如果没有数据源则连接是纸上谈兵,只是不需要配置ODBC数据源,利用ADO就可通过代码进行连接。

1.1 ADO(ActiveX Data Object)

在Visual Basic6.0中,数据访问接口有三种:ActiveX数据对象(ADO)、远程数据对象(RDO)和数据访问对象(DAO)。这三种接口的每一种都分别代表该技术的不同发展阶段,最新的是ADO,它比RDO和DAO更加简单,更加灵活。对于新工程,应使用ADO作为数据访问接口。

ADO 是Microsoft 数据库应用程序开发的接口,是建立在OLE DB之上的高层数据库访问技术。它封装了OLE DB所提供的接口,比起OLE DB提供者,ADO的接口可以使程序员在更高级别上进行数据交互。ADO技术不仅可以应用于关系数据库,也可以应用于非关系数据库。可以用统一的方法对不同的文件系统进行访问,大大简化了程序编制,增加了程序的可移植性。

1.2建立无源数据库连接

在连接数据库前,首先要在Visual Basic 6.0菜单中“工程”—“引用”中选择Microsoft ActiveX Data Objects 2.6 Library 和Microsoft ActiveX Data Objects Recordset 2.6 Library这两个组件。

运用ADO对象模型的主要元素:Connection(连接)中的ConnectionString属性进行连接, ConnectionString为可读写string类型,指定一个连接字符串,告诉ADO 如何连接数据库。

实例:以建立登陆系统为例,介绍无源数据库连接。在Microsoft SQL Server 2000 中建立一个Student 的数据库,在Student数据库中建立login_user(name,password)的数据表,Microsoft SQL Server服务器的名为data_server。代码如下:

Option Explicit

Public LoginSucceeded As Boolean

'引用Microsoft ActiveX Data Objects 2.6 Library

'定义连接对象和记录集

Dim conn As ADODB.Connection

Dim rs As ADODB.Recordset

'对取消按钮单击事件的响应

Private Sub cmdCancel_Click()

'设置全局变量为 false

'不提示失败的登录

LoginSucceeded = False

Me.Hide

End Sub

'对登录按钮单击事件的响应

Private Sub cmdOK_Click()

Set conn = New ADODB.Connection

Set rs = New ADODB.Recordset

'建立无源数据库连接

conn.ConnectionString="driver={sql server};server=data_server;u

conn.ConnectionTimeout = 50

conn.Open

Dim str As String

'连接连接对象

Set rs.ActiveConnection = conn

'设置游标类型

rs.CursorType = adOpenDynamic

If Trim(txtUserName.Text = "") Then

MsgBox "用户名不能为空,请重新输入用户名!", vbOKOnly + vbExclamation, "警告"

txtUserName.SetFocus

Else

'设置查询字符串

str = "select * from login_user where name ='" & Trim(txtUserName.Text) & "'"

rs.Open str

If rs.EOF = True Then

MsgBox "没有这个用户,请重新输入用户名!", vbOKOnly + vbExclamation, "警告"

txtUserName.SetFocus

Else

'登录成功,连接主窗口

If (Trim(txtPassword.Text) = Trim(rs.Fields("password"))) Then

LoginSucceeded = True

Me.Hide

main.Show

Else

MsgBox "密码不正确,请重输入密码!", , "警告"

txtPassword.SetFocus

SendKeys "{Home}+{End}"

End If

End If

End If

End Sub

无源数据库连接则不用配置ODBC环境,可以省去手工设置DSN的麻烦,这种方法所编写的软件适应性广,又符合专业软件的要求。

2 有源数据库的连接

有源数据库连接的首要任务是要注册数据源名称(DSN),通过配置ODBC环境,进行数据源的注册,然后才能在对数据库编程时,对数据源进行连接、访问和操作。

2.1ODBC

ODBC(Open Database Connectivity,开放数据库互连)是Microsoft公司开发的一套开放数据库系统应用程序接口规范,利用它可以在应用程序中同时访问多个数据库系统。由此可见,ODBC的最大优点是能以统一的方式处理所有的数据库。

2.2 DSN(数据源名称)

ODBC数据源分为以下三类:

(1) 用户DSN:只有创建数据源的用户才可以使用他们自己创建的数据源,而且只能在当前的计算机上使用。

(2) 系统DSN:任何使用你的计算机的用户和程序都可以使用的DSN。

(3) 文件DSN:除了具有系统DSN的功能之外,还能被其它用户在其它计算机上使用。

2.3创建ODBC数据源的步骤

(1) 启动控制面板。

(2) 双击ODBC图标,启动ODBC数据源。

(3) 换到“用户DSN”标签,单击“添加”。选择SQLServer作为数据源的驱动程序。

(4) 为数据源命名,按提示操作即可创建ODBC数据源。

2.4创建有源数据库连接

创建数据源是进行有源数据库连接的第一步,下面同样是运用ADO对象模型的主要元素Connection(连接)进行源数据库连接。

ConnectionString是Connection对象的属性名称,提供数据提供者或服务提供者打开到数据源的连接所需要的特定信息,包括Database、DSN、UID等。

(1) Database:字符串表达式,指定服务器上的数据库名称。

(2) UID:字符串表达式,为ODBC数据源指定用户标识(用户账号名)。

(3) PWD:字符串表达式,为ODBC数据源指定用户口令。

(4) DSN:字符串表达式,指定连接的ODBC 数据源名称。

利用已配置好的ODBC数据源进行连接。

实例:以建立查询系统为例,介绍有源数据库连接。创建ODBC数据源名称为stud,通过ADO与数据库student进行连接,代码如下:

Dim conn As ADODB.Connection

Dim rs As ADODB.Recordset

Private Sub Form_Load()

Set conn = New ADODB.Connection

Set rs = New ADODB.Recordset

conn.ConnectionString = "dsn=stud;u

conn.Open

Dim str As String

Set rs.ActiveConnection = conn

rs.CursorType = adOpenDynamic

str = "select * from login_user"

rs.Open str

txtUserName.Text = rs.Fields("name")

txtPassword.Text = rs.Fields("password")

End Sub

有源数据库连接首先要配置ODBC环境,注册数据源,这种方法有一定的局限性,当程序最终完成并分发到用户手中后,还需要为用户配置ODBC,而且由于参数内容不一,配置时不宜把握。

3结束语

ADO封装并且实现了Microsoft强大的数据访问接口OLE DB的所有功能,它具有通用性好,效率高的特点。通过ADO进行无源数据库连接,省去手工设置DSN的麻烦,使ADO对象模型获得更大的灵活性。