我在我的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中的表的列列表?
感谢。
答案 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驱动程序可能有所帮助。