设为首页 收藏本站
查看: 776|回复: 0

[经验分享] VB 6.0 与 SQL Server 的两种连接

[复制链接]

尚未签到

发表于 2015-6-30 15:41:53 | 显示全部楼层 |阅读模式
                                         

  
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;uid=sa;pwd=;Database=student"
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.1 ODBC
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;uid=sa;pwd=;database=student"
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对象模型获得更大的灵活性。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-82004-1-1.html 上篇帖子: 紧急求助MS SQL Server Database restore出错 下篇帖子: 一个支持asp.net2.0和Sql server及Access的免费空间(再次开放注册)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表