转至繁体中文版     | 网站首页 | 图文教程 | 资源下载 | 站长博客 | 图片素材 | 武汉seo | 武汉网站优化 | 
最新公告:     敏韬网|教学资源学习资料永久免费分享站!  [mintao  2008年9月2日]        
您现在的位置: 学习笔记 >> 图文教程 >> 站长学院 >> Web开发 >> 正文
如何在ado中使用connection 对象?         ★★★★

如何在ado中使用connection 对象?

作者:闵涛 文章来源:闵涛的学习笔记 点击数:708 更新时间:2009/4/23 10:40:23
什么是connection对象?

一个connection对象描述了到数据源的物理连接。你可以使用odbc也可以利用ole db来连接数据源。当你打开一个connectiont对象时你就会试图连接数据库。Connection对象的state属性会告诉我们连接是否成功。通过connection对象的execute方法向数据源发送SQL语句或运行存存储过程。如果你向数据源发送的命令要求数据源返回记录集,那么记录集对象会自动的被创建。当你连接上数据库后你可以关闭connection对象。

Connection 对象的方法和属性有哪些呢?

下表列出了connection一些常用的方法。

方法
描述

Open
打开一个数据源连接

Close
关闭与数据源的连接以及相关的对象

Execute
执行一个相关的查询(SQL语名或存储过程,或数据提供者特定文本)

BeginTrans
开始一个新事务

CommitTrans
.

保存一些改变或当前的事务目的是为开始一个新事务

RollbackTrans
取消一些改变在当前事务和结束事务时,目的是开始一个新事务



下表列出了一些常用的CONNECTION对象的属性。

属性
描述

ConnectionString
包含建立与数据源的连接的相关信息

ConnectionTimeout
显示尝试建立与数据源的连接和产生错误所花去的时间

CommandTimeout
显示在中断一个尝试和返回一个错误前执行该项指令所花去的时间

State
表明是否与数据源连接上或已关闭或正在连接中

Provider
显示连接提供者的名称

Version
显示ado版本号

CursorLocation
设定或返回一个提供者光标函数的定值





如何利用connection对象连接数据源?

用一个connnection 对象,只要指定一个connection字符串,目的是用来指定你想要联结的数据源,然后调用open方法来建立链接。

通过connection string提供的信息用OPEN方法可以非常轻松的建立与数据的连接。如果你决定用connection对象进行工作,那么你可以用它的STATE属性。如果connection对象被打开了那么它的返回值为adstateopen,如果不是它的返回值为adstateclosed.下面的例子是利用odbc建立与SQL的连接。

Sub ConnectionExample1()
Dim cnn As ADODB.Connection
Set cnn = New ADODB.Connection
'''' 用ODBC打开连接.
cnn.Open "Pubs", "sa", ""
'''' 检查是否完成连接
If cnn.State = adStateOpen Then
MsgBox "Welcome to Pubs!"
Else
MsgBox "Sorry. No Pubs today."
End If
关闭connection对象
cnn.Close
End Sub
如果你只需要连接一个数据源。下面的代码要比上面的简单。作为选择,你可以创建一个connection对象,在调用open方法前你可以先设置ConnectionString属性。这种方法容许你连接一个数据源后再重新用这个对象再连接另一个数据源。
Sub ConnectionExample2()
Dim cnn As ADODB.Connection
Set cnn = New ADODB.Connection
'''' 用ODBC DSN 建立连接
cnn.ConnectionString = "DSN=Pubs;UID=sa;PWD=;"
cnn.Open
'''' 检查是否与数据源建立了连接.
If cnn.State = adStateOpen Then
MsgBox "Welcome to Pubs!"
Else
MsgBox "Sorry. No Pubs today."
End If
''''关闭connection对象
cnn.Close
End Sub
在你对CONNECTION对象建立连接前,你可以设置它的其它属性。例如,你可以设置连接超时。

Sub ConnectionExample3()
Dim cnn As ADODB.Connection
Set cnn = New ADODB.Connection
'''' 设置CONNECTION属性
cnn.ConnectionString = "DSN=Pubs;UID=sa;PWD=;"
cnn.ConnectionTimeout = 30
'''' 打开connection 对象
cnn.Open
'''' 检查是否已经连接上数据源
If cnn.State = adStateOpen Then
MsgBox "Welcome to Pubs!"
Else
MsgBox "Sorry. No Pubs today."
End If
'''' 关闭connection对象
cnn.Close
End Sub
ConnectionString属性的语法结构假定数据源已经被建立或利用系统管理员的身份使用ODBC.不依靠存在的odbc数据源变得流行起来。这样就减轻了安装的负担。下面的例子是一个连接SQL SERVER的可选择性的方法,仅依靠本身存在的odbc driver

. Sub ConnectionExample4()
Dim cnn As ADODB.Connection
Set cnn = New ADODB.Connection
''''利用引用ODBC DRIVER打开CONNECTION对象
cnn.ConnectionString = "driver={SQL Server};" & _
"server=rgreennt;uid=sa;pwd=;database=pubs"
cnn.Open
'''' Find out if the attempt to connect worked.
''''检查是否已经建立连接
If cnn.State = adStateOpen Then
MsgBox "Welcome to Pubs!"
Else
MsgBox "Sorry. No Pubs today."
End If
'''' 关闭CONNECTION对象
cnn.Close
End Sub
现在ODBC DRIVER 有更广的变化,你可以用ADO和数据源对话。不久将会有更的的OLE DB提供者与数据源建立连接。The Microsoft® OLE DB Provider for ODBC是当前ADO默认的提供者。你能用不同的提供者设置CONNECTION对象的provider属性。

Sub ConnectionExample5()
Dim cnn As ADODB.Connection
Set cnn = New ADODB.Connection
''''设置PROVIDER属性利用OLE DB Provider for ODBC
cnn.Provider = "MSDASQL"
''''用ODBC DSN打开CONNECTION对象
cnn.ConnectionString = "driver={SQL Server};" & _
"server=rgreennt;uid=sa;pwd=;database=pubs"
cnn.Open

''''检查是否连接上数据源
If cnn.State = adStateOpen Then
MsgBox "Welcome to Pubs!"
Else
MsgBox "Sorry. No Pubs today."
End If

''''关闭CONNECTION对象
cnn.Close

End Sub
上面的代码设置PROVIDER属性不是必须因为ADO的默认提供者就是OLE DB PROVIDER FOR ODBC.这里只是认你知道当你用其它的OLE DB PROVIDERS时如何设置。

我如何用CONNECTION对象执行COMMAND?

CONNNETION的EXECUTE方法用来发送一个COMMAND(一个SQL指令或其它的文本信息)到数据源。如果在SQL指令中要求返回几行记录集,一个RECORDSET对象将会被自动的建立。

Sub ConnectionExample6()
Dim cnn As ADODB.Connection
Dim rs As ADODB.Recordset
Set cnn = New ADODB.Connection
'''' 引用 ODBC driver 建立连接.
cnn.ConnectionString = "driver={SQL Server};" & _
"server=rgreennt;uid=sa;pwd=;database=pubs"
cnn.Open
'''' 执行SQL 语句创立一个RECORDSET对象.
Set rs = cnn.Execute("Select * From authors")
'''' 显示第一个 author.
MsgBox rs("au_fname") & " " & rs("au_lname")
'''' 断开连接
rs.Close
End Sub
记住用EXECUTE返回的RECORDSET是只读的,并且是仅向前光标。如果你需要用RECORDSET物件的更多函数,你首先要创建RECORDSET物件并设置想要设置的属性然后用OPEN方法打开它来执行查询和返回想要得到的光标类型.

在下面的例子中,COMMAND物件执行删除指令,由于没有数据集需要返回,你不需要额外的用RECORDSET物件.删除了多少行数据?你可以通过RECORDSAFFECTED参数知道它.

Sub ConnectionExample7()
Dim cnn As ADODB.Connection
Dim rs As ADODB.Recordset
Set cnn = New ADODB.Connection
''''引用ODBC DRIVER建立连接
cnn.ConnectionString = "driver={SQL Server};" & _
"server=rgreennt;uid=sa;pwd=;database=pubs"
cnn.Open
''''向数据源发送删除指令
cnn.Execute ("Delete From authors Where au_id = ''''011-01-0111''''")
'''' 检查有多少行数据被删除
Set rs = cnn.Execute("Select @@rowcount")
'''' 显示第一个字段
MsgBox rs(0) & " rows deleted"
''''关闭连接
rs.Close
End Sub
下面的例子,这个COMMAND通过指定的存储过程的名字运行数据源的存储过程.由于需要返回数据,所以你必需建立RECORDSET物件。

Sub ConnectionExample8()
Dim cnn As ADODB.Connection
Dim rs As ADODB.Recordset
Set cnn = New ADODB.Connection
'''' 引用ODBC DRIVER来建立连接
cnn.ConnectionString = "driver={SQL Server};" & _
"server=rgreennt;uid=sa;pwd=;database=pubs"
cnn.Open
'''' 建立RECORDSET对象来运行存储过程
Set rs = cnn.Execute("Exec byroyalty 50")
'''' 通过循环来显示AUTHOR的ID
Do While Not rs.EOF
MsgBox rs("au_id")
rs.MoveNext
Loop
'''' 断开连接
rs.Close
End Sub


[系统软件]如何在Linux系统上进行快速磁带备份  [C语言系列]如何在Jbuilder9中使用SQLServer JDBC驱动
[VB.NET程序]如何在Visual Basic 6.0 中连接加密的Access数据库  [VB.NET程序]如何在vb 中用api函数代替winsock控件建立网络连接…
[Delphi程序]如何在delphi6中调试web程序  [Delphi程序]如何在Delphi中用代码来完成计算字段的创建
[Delphi程序]如何在 Listbox 上显示 In-place Tooltips  [Delphi程序]如何在Delphi应用程序中调用CHM文档
[Delphi程序]如何在Delphi中使用正则表达式  [Delphi程序]如何在delphi下和.net建立的webservice 进行协同工…
教程录入:mintao    责任编辑:mintao 
  • 上一篇教程:

  • 下一篇教程:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
      注:本站部分文章源于互联网,版权归原作者所有!如有侵权,请原作者与本站联系,本站将立即删除! 本站文章除特别注明外均可转载,但需注明出处! [MinTao学以致用网]
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)

    同类栏目
    · Web开发  · 网页制作
    · 平面设计  · 网站运营
    · 网站推广  · 搜索优化
    · 建站心得  · 站长故事
    · 互联动态
    更多内容
    热门推荐 更多内容
  • 没有教程
  • 赞助链接
    更多内容
    闵涛博文 更多关于武汉SEO的内容
    500 - 内部服务器错误。

    500 - 内部服务器错误。

    您查找的资源存在问题,因而无法显示。

    | 设为首页 |加入收藏 | 联系站长 | 友情链接 | 版权申明 | 广告服务
    MinTao学以致用网

    Copyright @ 2007-2012 敏韬网(敏而好学,文韬武略--MinTao.Net)(学习笔记) Inc All Rights Reserved.
    闵涛 投放广告、内容合作请Q我! E_mail:admin@mintao.net(欢迎提供学习资源)

    站长:MinTao ICP备案号:鄂ICP备11006601号-18

    闵涛站盟:医药大全-武穴网A打造BCD……
    咸宁网络警察报警平台