首页 >> 读书频道 >> 电脑 >> ADO的建立连结
 
· 在记忆体中的ADO记录集
· 用VB实现全屏幕图形界面
· 用VB5 Winsock
· 在VB中制作单独程序封面
· 在VB程序中怎样挂断拨号
· VB中阴影字体的实现
· 制作自己的网络搜索软件
· 利用VB的图片框实现屏幕
· 用VB编写网络寻呼机
· 用VB制作浏览器
· 浅谈用VB6.0编写BO
· 使用VB收发电子邮件
 
· 电视剧《刁蛮公主》下载和
· 美容养颜手册
· 加油金顺剧情分集介绍完整
· 红楼梦:120回全本[清
· 素质教育在美国
· 全唐诗卷四十六
· 韩剧《布拉格恋人》剧情介
· 夜航船[作者:明·张岱]
· 局外人[作者:韩·可爱淘
· 现场流行病学
· 源氏物语[日本:紫式部]
· 武林寓言故事
 
· (出租)中动商场部分及写
· (出租)中动动漫基地&#
· 喜剧学院
· 《善德女王》剧情介绍
· 魔女18号 剧情
· 丑女无敌剧情介绍
· 魔女幼熙剧情介绍
· 龙游天下剧情介绍
· 震撼世界的七日剧情介绍
· 静静的白桦林剧情介绍
· 心情日记—老公今天我想对
· 旗舰剧情介绍
欢迎来到月影社区!如果您觉得这里不错,请推荐给您的朋友们。月影社区:http://wf66.com/

ADO的建立连结


查看有无更新版本

关键字:VB 2006-9-18

 

ADO的连结主要可分成透过OLE DB Privder的方式与OLE DB Provider for ODBC,前者
很明显的是Microsoft公司极力发展的方式,据说它比透过ODBC的方式快且所需资源少
,但实际上如何,几年之後就可很清楚了。不过目前有Privder提供OLE DB介面者尚没有
非常多,但提供ODBC介面者就很多了,在只有ODBC Driver之下,如果也要使用ADO的话
那可以使用OLE DB Provider for ODBC的介面,然而它的Performance和使用RDO来比,
那得花上好些工夫试看看,至少我没有那些工夫做这种事。

先看看OLE DB Provider for ODBC的连法

Dim connstr As String
Set cn = New ADODB.Connection
cn.Provider = "MSDASQL"   'Microsoft OLE DB Provider for ODBC)
'因为是透过ODBC来做,所以connstr的设定,和使用RDO ODBC的连结字串皆相同
connstr = "UID=cww;PWD=jjh5612;Database=cwwpf@eis;" _
        + "Driver={OpenLink Generic 32 Bit Driver};" _
        + "Host=192.168.0.61;" _
        + ";FetchBufferSize=30" _
        + ";NoLoginBox=Yes" _
        + ";Options=" _
        + ";Protocol=TCP/IP" _
        + ";ReadOnly=No" _
        + ";ServerOptions=" _
        + ";ServerType=Informix 7.2"
cn.ConnectionString = connstr
cn.Open

sql = "Select * from testtab order by case_no"
Set rs = New ADODB.Recordset
Set rs.ActiveConnection = cn    '设定该Resultset依附在cn物件上开启
rs.CursorLocation = adUseServer
rs.LockType = adLockOptimistic
rs.CursorType = adOpenKeyset
rs.Source = sql
rs.Open


如此启了一个Connection。不过这边要提出的是,ADO不像RDO它的Recordset物件不一定
要附属於某一个已开启的Connection物件。回想一下,一般RDO Recordset的建立是透过
rdoConnection.OpenResultset或rdoQuery.OpenResultset的方式,而rdoQuery的建立是
透过rdoConnection.CreateQuery,所以这里可见到rdoConnection/rdoQuery/rdoResultset
是有阶层观念的,rdoResultset一定要透过现存的一个rdoConnection物件才能建立,但
是在ADO则不同,adoResultset物件可以自行就产生了,不必透过adoConnection物件,但
它也可以将Connection依附在现存的adoConnection之下,像上面的例子便是如此。而以
下的例子则是单独使用ado Resultset建立连结的方式。当然,单独使用Resultset物件来
建立连结它也有建立一个adoConnection来连,只是我们没有办法Reference到它;而在比
较复杂的系统(例如要有Transacction),那还是得先从ado Connection物件建立起再来做。


connstr = "UID=cww;PWD=jjh5612;Database=cwwpf@eis;" _
        + "Driver={OpenLink Generic 32 Bit Driver};" _
        + "Host=192.168.0.61;" _
        + ";FetchBufferSize=30" _
        + ";NoLoginBox=Yes" _
        + ";Options=" _
        + ";Protocol=TCP/IP" _
        + ";ReadOnly=No" _
        + ";ServerOptions=" _
        + ";ServerType=Informix 7.2"
sql = "Select * from testtab order by case_no"
Set rs = New ADODB.Recordset
'用以下的方式就不用单独设定CursorType/LockType/Source等等的属性,而原本第二
'个叁数是存放所依附的adoConnect物件,现在则改成连结的字串
rs.Open sql, constr, adOpenKeyset, adLockOptimistic

而使用OLE DB 的方式呢?

Set cn = New ADODB.Connection
connstr = "Data Source=OPEN_VIEW;User=cww;Password=jjh5612;Initial Catalog=Pubs"
cn.Provider = "SQLOLEDB"  '设定Privder是SQL Server OLE DB,该名称随不同的
                          'Database Privder不同而有所不同
cn.ConnectionString = connstr
cn.Open
sql = "Select * from Authors"
Set rs = New ADODB.Recordset
Set rs.ActiveConnection = cn
rs.CursorLocation =  adUseServer
rs.Open sql, cn, adOpenKeyset, adLockOptimistic

上面的例子中,Data Source指的是SQL Server的名称,而Initial Catalog指的是Database
名称在这里,我们也可以不设定Database的名称,而在ado Connection建立之後再来设
定Connection物件的DefaultDatabase如下:

Set cn = New ADODB.Connection
connstr = "Data Source=OPEN_VIEW;User=cww;Password=jjh5612;"
cn.Provider = "SQLOLEDB"
cn.ConnectionString = connstr
cn.Open
cn.DefaultDatabase = "cwwtest"
sql = "Select * from testtab"
Set rs = New ADODB.Recordset
Set rs.ActiveConnection = cn
rs.CursorLocation = adUseServer
rs.Open sql, cn, adOpenKeyset, adLockOptimistic

Set rs2 = New ADODB.Recordset
cn.DefaultDatabase = "Pubs"
rs2.Open "Select * from Authors", cn, adOpenForwardOnly, adLockReadOnly

如此一来,同一个Connection物件,便可以有不同Database的asoResultset物件附於其
上了。

而连结Access数据库呢?
cn.Provider = "Microsoft.Jet.OLEDB.3.51"
connstr = "Data Source=e:\cwwtest.mdb;"
cn.ConnectionString = connstr
cn.Open
sql = "Select * from testtab order by case_no"
Set rs = New ADODB.Recordset
Set rs.ActiveConnection = cn
rs.Open sql, cn, adOpenKeyset, adLockPessimistic

不过使用ADO来连结Access数据库有时候没有办法发挥得像DAO那般的流畅,例如说,在
这个例子中,虽然我们设定悲观锁定(adLockPessimistic),但实际上测试结果,它还是
乐观锁定。再则,它没有办法像DAO使用Seek指令。而且ADO没有CreateDatabase
CreateTable的功能;由这里来看,ADO取代DAO的日子尚未到来,但是VB6.0的环境,使
用ADO才有办法把一些良好的数据库环境表现子得很好。


ADO的建立连结

[ 1 ]
ADO的建立连结 num

打印本页 关闭

关于我们版权声明本站导航友情连结作品演示 TOP↑