0
我想从excel中使用adodb连接对象从oracle读取数据。但我收到错误“oracle -160000数据库被设置为只读访问”请让我知道如何解决这个问题。Excel VBA从设置为只读的oracle数据库读取数据
我想从excel中使用adodb连接对象从oracle读取数据。但我收到错误“oracle -160000数据库被设置为只读访问”请让我知道如何解决这个问题。Excel VBA从设置为只读的oracle数据库读取数据
查看记录集打开方法的LockType参数并使用adLockReadOnly。我不熟悉Oracle。您可能还需要将CursorType参数设置为adOpenForwardOnly。
例子:
Dim lobjADOConnection As ADODB.Connection
Dim lobjADOData As ADODB.Recordset
Dim lstrSQL As String
Set lobjADOConnection = New ADODB.Connection
lobjADOConnection.Open ...
Set lobjADOData = New ADODB.Recordset
lstrSQL = "<your query here>"
lobjADOData.Open lstrSQL, lobjADOConnection, adOpenForwardOnly, adLockReadOnly '<===here
If Not lobjADOData.BOF Then
lobjADOData.MoveFirst
Do While Not lobjADOData.EOF
DoEvents
.
.
.
,或者如果你只是想将数据转储到工作表
Dim lobjTargetSheet As Worksheet
Set lobjTargetSheet = ThisWorkbook.Sheets("<SomeSheetName>")
With lobjTargetSheet
.Select
.Range("1:" & .UsedRange.Rows.count + 1).Delete xlUp
.Range("A1").Select
.Range("A1").CopyFromRecordset lobjADOData
End With
你可以给它一些协议 – user3471254
更新后用一个例子。 – thx1138v2