在应用来自本地文件(*.sdf)的任何查询之前,我正在尝试从数据库中获取模式。
到目前为止,当我知道模式时,我可以连接到数据库并执行查询。
我试过两次接近但都失败了。
首先,我试着用
import adodbapi.schema_table as DB_schema
temp2 = DB_schema.names(connection_handler)但是,如果出现以下错误,则会失败:
引发AttributeError(‘在ADO连接对象as="%s"’‘%item中没有这样的属性) AttributeError:在ADO连接对象as="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,“异常发生了。”),(0,u‘adodbapi.apibase.DatabaseError提供程序’,u‘多步OLE DB操作生成错误。如果可用,请检查每个OLE DB状态值。没有做任何工作。‘,没有,0,2147217887),没有) 命令: 从TABLE_NAME中选择Distinct information_schema.TABLES 参数: []
当在紧凑的视图上执行时,相同的查询工作得很好。
任何想法都是受欢迎的。
还有别的办法吗?(我尝试过odbc、Server,但到目前为止还没有成功)
发布于 2019-07-11 22:16:12
与adodbapi版本2.6.0.7:
连接到数据库后,该连接具有以下方法:
myconnection.get_table_names()它返回模式,如参考指南中所解释的:
reference.pdf
对我来说,只有在更改连接器游标位置之后,这才起作用:
myconnection.connector.CursorLocation = 2这会将光标位置更改为服务器端,这是我在这里发现的一个技巧:
How do i correctly query a sql ce 4.0 database file using adodbapi?
https://stackoverflow.com/questions/39619979
复制相似问题