如何使用adodbapi从MS Server Compact Edition(* .sdf)检索架构?

时间:2016-09-21 14:54:50

标签: python sql-server adodbapi

在从本地文件(* .sdf)应用任何查询之前,我试图从数据库中获取模式。 到目前为止,我可以连接到数据库并在了解架构时执行查询。

我尝试过两次接近并且都失败了。

首先,我尝试使用

 import adodbapi.schema_table as DB_schema
 temp2 =DB_schema.names(connection_handler)

但是失败并出现以下错误:

raise AttributeError('no such attribute in ADO connection object as="%s"' % item)
AttributeError: no such attribute in ADO connection object as="adoConn"

(这是参考指南中的简单解决方案)

另外

connection_handler.get_table_names() #doesn't work

...失败

然后,我试过

sql_querry_to_get_all_table_names_from_database = "SELECT Distinct TABLE_NAME FROM information_schema.TABLES"
cursor.execute(sql_querry_to_get_all_table_names_from_database)

也会因稍有不同的消息而失败:

adodbapi.apibase.DatabaseError: (-2147352567, 'Exception occurred.', (0, u'Microsoft SQL Server Compact OLE DB Provider', u'Multiple-step OLE DB operation generated errors. Check each OLE DB status value, if available. No work was done.', None, 0, -2147217887), None)
Command:
SELECT Distinct TABLE_NAME FROM information_schema.TABLES
Parameters:
[]

在紧凑视图上执行时,同样的查询工作正常。

任何想法都非常受欢迎。

还有其他方法吗? (我尝试了odbc,mssql,但到目前为止没有运气)

1 个答案:

答案 0 :(得分:0)

对于adodbapi版本2.6.0.7:

连接到数据库后,连接具有方法:

myconnection.get_table_names()

返回架构,如参考指南中所述:

http://adodbapi.sourceforge.net/quick_reference.pdf

对我来说,这仅在更改连接器光标位置后才有效:

myconnection.connector.CursorLocation = 2

这会将光标位置更改为服务器端,这是我在这里找到的一个技巧:

How do i correctly query a sql ce 4.0 database file using adodbapi?