Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1799054
  • 博文数量: 600
  • 博客积分: 10581
  • 博客等级: 上将
  • 技术积分: 6205
  • 用 户 组: 普通用户
  • 注册时间: 2008-11-06 10:13
文章分类
文章存档

2016年(2)

2015年(9)

2014年(8)

2013年(5)

2012年(8)

2011年(36)

2010年(34)

2009年(451)

2008年(47)

分类:

2009-10-11 11:17:37

来源:cww
透过OpenLink Generic 32 Bit Driver与Informix 7.2 连结 ,当然,如果是SQL SERVER
的连结也是大同小异啦。
至于连结完之后如何操作DataBase内的资料,请查RDO 的建立记录集(一)

无DSN的建立连结,好处是不用每一台电脑去控制台ODBC32中设定一个Data Source,
而且也不用在Hosts中设定Server所在电脑的IP Address。方式如下:
Private cn   As rdoConnection
Private en As rdoEnvironment

Dim connstr As String
Set en = rdoEnvironments(0)
connstr = "UID=cww;PWD=cww1111;Database=cwwpf@eis;" _
	+ "Driver={OpenLink Generic 32 Bit Driver};" _
	+ "Host=192.168.0.61;" _
	+ "ServerType=Informix 7.2;"
Set cn = en.OpenConnection("", rdDriverNoPrompt, _
			   False, connstr)
'会等OpenConnection执行 成功/失败 后才会往下做下去

而建立有DSN的建立连结方式如下:(有一Data Source Name 叫OPNK)
Dim connstr As String
Set en = rdoEnvironments(0)
connstr = "UID=cww;PWD=cww1111;"
Set cn = en.OpenConnection("OPNK", rdDriverNoPrompt, _
			   False, connstr)
'会等OpenConnection执行 成功/失败 后才会往下做下去


如果想在在执行OpenConnection 方法后立即交出控制权,那必需用以下的方式:
1.OpenConnection时要有rdAsyncEnable才行(即非同步开启)
2.cn要以WithEvents来宣告(如果想使用Connect事件来Check是否有成功)

Private WithEvents cn	As rdoConnection
Private en As rdoEnvironment

'不管Connect成功与否,都会引发Connect的事件
Private Sub cn_Connect(ByVal ErrorOccurred As Boolean)
Dim i As Long
Dim er As rdoError
If ErrorOccurred Then '连结失败
   Debug.Print Err.Description, Error
   For Each er In rdoErrors
	Debug.Print er.Description, er.Number
   Next er
Else  '连结成功
  For i = 0 To cn.rdoTables.Count - 1
     Debug.Print cn.rdoTables(i).Name
  Next
End If
End Sub

Private Sub Form_Load()
Dim connstr As String
Set en = rdoEnvironments(0)
connstr = "UID=cww;PWD=cww1111;"
Set cn = en.OpenConnection("OPNK", rdDriverNoPrompt, _
			   False, connstr, rdAsyncEnable)
'Do While cn.StillConnecting   '如果不使用Connect事件,那要用以下方式
'   DoEvents
'Loop

End Sub
当然了,我们也可以使用
rdoConnection的EstablishConnection的方法来做,而使用EstablishConnection
时,却是内定的会产生Connect事件(只要rdoConnection物件以WithEvents宣告)
例如:
Set en = rdoEnvironments(0)
Set cn = New rdoConnection
cn.CursorDriver = rdUseODBC
connstr = "DSN=SQLSRV;UID=cww;PWD=cww1111;"
cn.Connect = connstr
cn.EstablishConnection rdDriverNoPrompt, False


阅读(604) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~