【问题标题】:How to retrieve the schema from MS Server Compact Edition (*.sdf) by using adodbapi?如何使用 adodbapi 从 MS Server Compact Edition (*.sdf) 中检索架构?
【发布时间】:2016-09-21 14:54:49
【问题描述】:

在从本地 SQL Server Compact Edition 文件 (*.sdf) 应用任何查询之前,我正在尝试从数据库中获取架构。

到目前为止,当我知道架构时,我可以连接到数据库并执行查询。

我已经尝试了两种方法,但都失败了。

首先,我尝试使用

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

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

raise AttributeError('ADO 连接对象中没有这样的属性 as="%s"' % item)
AttributeError:ADO 连接对象中没有这样的属性,如 =“adoConn”

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

还有

connection_handler.get_table_names() #doesn't work

失败...

然后,我尝试了

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

这也失败了,消息略有不同:

adodbapi.apibase.DatabaseError: (-2147352567, 'Exception occurred.', (0, u'Microsoft SQL Server Compact OLE DB Provider', u'多步OLE DB操作产生错误。检查每个OLE DB状态值, 如果可用。没有完成任何工作。', None, 0, -2147217887), None)
命令:
从 information_schema.TABLES 中选择不同的 TABLE_NAME

参数:
[]

在紧凑视图上执行相同的查询时效果很好。

欢迎提出任何想法。

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

【问题讨论】:

    标签: python sql-server adodbapi


    【解决方案1】:

    使用 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?

    【讨论】:

      猜你喜欢
      • 2010-12-29
      • 1970-01-01
      • 1970-01-01
      • 2010-09-26
      • 1970-01-01
      • 1970-01-01
      • 2023-04-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多