ado oracle 驱动,求助:ADO连接ORACLE

本帖最后由 ljy00879 于 2012-8-22 13:14 编辑

Sub 调运录入1() '使用数据集更新,向数据表中添加记录。

Dim rg As Range

Dim arr

Dim cnn As ADODB.Connection

Dim rst As ADODB.Recordset

Dim st As String, sql As String

Dim i As Integer, j As Integer, x As Integer

Set cnn = New ADODB.Connection

Set rst = New ADODB.Recordset

Set rg = Sheet4.Range("a3:l" & Range("a65536").End(xlUp).Row)

arr = rg

'Data Source=oracle实例名;

sql = "select * from dy"

st = "provider=msdaora.1;" & _

"data source=orcl;" & _

"user id=scott;" & _

"password=tiger;" & _

"persist security info=true"

cnn.Open st

cnn.CursorLocation = adUseClient

rst.Open sql, cnn, adOpenDynamic, adLockOptimistic

For i = 1 To UBound(arr, 1)

rst.AddNew '这里出错啦!

For j = 0 To rst.Fields.Count - 1

rst.Fields(j) = arr(i, j + 1)

Next j

On Error Resume Next

rst.Update

For x = 0 To cnn.Errors.Count - 1

Debug.Print cnn.Errors(x).Description'返回ORA-00001,ORA-02291

Debug.Print cnn.Errors(x).NativeError '返回1,2291

Debug.Print cnn.Errors(x).Number'返回-2147217873,-2147467259

Debug.Print cnn.Errors(x).Source' 返回Microsoft OLE DB Provider for Oracle

Debug.Print cnn.Errors(x).SqlState '返回空

Next

Next i

rst.Close

cnn.Close

Set rst = Nothing

Set cnn = Nothing

MsgBox "数据录入完毕,共" & i & "条记录。"

End Sub

打印出如下出错信息,以供医家研究。

ORA-00001: 违反唯一约束条件 (SCOTT.DY_MD_PK)

1

-2147217873

Microsoft OLE DB Provider for Oracle

ORA-02291: 违反完整约束条件 (SCOTT.KC_DY_KCH_FK) - 未找到父项关键字

2291

-2147467259

Microsoft OLE DB Provider for Oracle

这是两类主要的错误。

任何涉及 ADO 对象的操作都会生成一个或多个提供者错误。每个错误出现时,一个或多个 Error 对象将被放到 Connection 对象的 Errors 集合中。当另一个 ADO 操作产生错误时,Errors 集合将被清空,并在其中放入新的 Error 对象集。

注意   每个 Error 对象都代表特定的提供者错误而不是 ADO 错误,ADO 错误被记载到运行时的例外处理机制中。

除了在 Error 对象和 Errors 集合中说明的提供者错误之外,ADO 本身也将错误返回到运行时环境的异常处理机制之中。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值