分享
 
 
 

如何在ado中使用connection 对象?

王朝vb·作者佚名  2006-01-08
窄屏简体版  字體: |||超大  

什么是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

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有