У меня есть макрос в Excel для запуска. sql файлы, соединяющиеся с Oracle для извлечения данных. Моя проблема в том, что у меня очень странная ошибка, связанная с тем, что первая строка файла. sql является строкой комментария.
Если есть только --
или вся строка комментария после выберите, он будет работать, но если после первой строки --
что-то будет, это не сработает. (Это то же самое, что и /**/
. Невозможно поместить что-то между / * и * /, иначе это не сработает).
Вот несколько примеров. sql:
Пример 1 (не работает):
-- test
select
*
from ABC.ABC_FIELD ABCField
where what_ever = 15
Пример 2 (работает):
--
select
*
from ABC.ABC_FIELD ABCField
where what_ever = 15
Пример 3 (работает):
select
-- test
*
from ABC.ABC_FIELD ABCField
where what_ever = 15
Вот код VBA, который может иметь отношение к делу. Кажется, что он не работает в строке rs.Open (rs
не открывается вообще), но я не получаю ошибки. Таким образом, rs.Fields.Count
равно 0, что делает попытку чтения записей после этого неудачной.
Public cnn As ADODB.Connection
...
Set cnn = New ADODB.Connection
cnn.ConnectionString = "DSN=ABC_ORA;UID=" & UserId & ";PWD=" & Password & ";Persist Security Info=true"
cnn.Open
...
Dim myFile As String
Dim text As String
Dim textline As String
LaRequete = ""
myFile = Application.Worksheets(FeuilleParametres).Range("FICHIER").Value
Open myFile For Input As #1
Do Until EOF(1)
Line Input #1, textline
LaRequete = LaRequete & textline & " " & vbCrLf
Loop
Close #1
...
Dim rs As ADODB.Recordset
Set rs = New ADODB.Recordset
rs.Open LaRequete, cnn.ConnectionString
For iCols = 0 To rs.Fields.Count - 1
resultatsSheet.Cells(1, iCols + 1).Value = rs.Fields(iCols).Name
Next
Вот две ошибки, которые я получаю в ADODB.Connection
. Извините, описания на французском.
Error 1
Native Error: 0
Number : -2147217887
Source : "Microsoft OLE DB Provider for ODBC Drivers"
Description : "Une opération OLE-DB en plusieurs étapes a généré des erreurs. Vérifiez chaque valeur d'état OLE-DB disponible. Aucun travail n'a été effectué."
Error 2
Help Context : 1240640
Native Error : -2147217887
Number : -2147217887
Source : "ADODB.Connection"
Description : "Le fournisseur ne prend pas en charge cette propriété."
Я надеюсь, что предоставил всю необходимую информацию для решения этой проблемы. Спасибо.