带有VB6错误的SQLite3 ODBC驱动程序

时间:2009-04-07 01:52:00

标签: sqlite vb6 odbc

我在我的VB6应用程序中使用SQLite ODBC驱动程序(来自此处http://www.ch-werner.de/sqliteodbc/)。一切正常,就检索和保存数据而言,如果我尝试通过以下命令获取表列的列表:

pragma table_info (myTableName)

ADO调用失败,出现2个错误(在Connection.Errors属性中找到)

错误#1:说明:“多步OLE DB操作生成错误。检查每个OLE DB状态值,如果可用。没有完成任何工作。” :String:cMisDataLayer.ExecuteRecordset

错误#2:说明:“提供商不支持该属性。” :String:cMisDataLayer.ExecuteRecordset

我的问题是为什么我收到此错误,是否有解决方法来获取SQLite中的表的列列表?

感谢。

3 个答案:

答案 0 :(得分:1)

虽然我没有使用SQLite ODBC,但我猜你可以做一个ADOX库 - 我想这是用来从数据库中获取架构信息。

page可能会有所帮助。

答案 1 :(得分:1)

为什么不直接使用ADO RecordSet Fields集合?只需执行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

答案 2 :(得分:0)

检查您是否使用Win32或Win64版本的SQLite ODBC驱动程序可能有所帮助。