Драйвер ODBC для SQLite3 с ошибками VB6 - PullRequest
0 голосов
/ 07 апреля 2009

Я использую драйвер ODBC для SQLite (отсюда http://www.ch -werner.de / sqliteodbc / ) с моим приложением VB6. Однако все работает нормально, даже если я пытаюсь получить список столбцов таблицы с помощью следующей команды:

pragma table_info (myTableName)

Сбой вызова ADO с 2 ошибками (находится в свойстве Connection.Errors)

Ошибка № 1: Описание: «Многошаговая операция OLE DB вызвала ошибки. Проверьте каждое значение состояния OLE DB, если доступно. Никакой работы не было сделано». : String: cMisDataLayer.ExecuteRecordset

Ошибка № 2: Описание: «Поставщик не поддерживает свойство». : String: cMisDataLayer.ExecuteRecordset

У меня вопрос: почему я получаю эту ошибку и есть ли обходной путь для получения списка столбцов для таблицы в SQLite?

Спасибо.

Ответы [ 3 ]

1 голос
/ 07 апреля 2009

Почему бы просто не использовать коллекцию ADO RecordSet Fields? Просто сделайте SELECT * FROM таблицы ГДЕ 1 = 0. Когда ADO получает набор результатов, он также возвращает всю информацию о столбце.

Private Sub cmdTest_Click()

   Dim conTest As ADODB.Connection
   Dim cmdTest As ADODB.Command
   Dim rstResults As ADODB.Recordset
   Dim fldCurrent As ADODB.Field

   Set conTest = New ADODB.Connection
   conTest.ConnectionString = "whatever your connection string is"
   conTest.Open

   Set cmdTest = New ADODB.Command
   cmdTest.CommandType = adCmdText
   cmdTest.CommandTimeout = 30
   cmdTest.CommandText = "SELECT * FROM myTableName WHERE 1=0"

   cmdTest.ActiveConnection = conTest
   Set rstResults = cmdTest.Execute()

   For Each fldCurrent In rstResults.Fields

      Debug.Print fldCurrent.Name & " " & CStr(fldCurrent.Type)

   Next fldCurrent

End Sub
1 голос
/ 07 апреля 2009

Хотя я не работал с SQLite ODBC, я думаю, вы можете создать библиотеку ADOX, которая, как я полагаю, используется для получения информации о схеме из базы данных.

Эта страница может помочь.

0 голосов
/ 04 декабря 2010

Может помочь проверка, используете ли вы Win32 или Win64 версию драйвера ODBC для SQLite.

...