2009-04-07 3 views
0

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

pragma table_info (myTableName) 

Вызов ADO терпит неудачу с 2 ошибки (находится в собственности Connection.Errors)

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

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

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

Спасибо.

ответ

1

Почему бы не просто использовать коллекцию полей ADO RecordSet? Просто сделайте таблицу SELECT * FROM WHERE 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

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

Этот page может помочь.

0

Проверка использования Win32 или Win64 версии драйвера SQLite ODBC может помочь.

Смежные вопросы