.sdf
经过数小时的头痛后,我设法使用以下连接字符串使用 adodbapi 使用 Python连接到数据库文件:
Provider=Microsoft.SQLSERVER.CE.OLEDB.3.5;
Data Source={};
ssce:Database Password='{}';
只是陷入这种愚蠢的......情况......
选择将适用于除 B 列之外的任何其他列
select * from table_name << crashes
select A, B from table_name << crashes
select A, C from table_name << works
select B from table_name << crashes
所以它必须与该数据有关,因为使用 sdfBrowser 相同的查询可以正常工作。
回溯(最近一次通话最后):
_execute_command 记录集中的文件“C:...PythonSoftwareFoundation.Python.3.9_qbz5n2kfra8p0\LocalCache\local-packages\Python39\site-packages\adodbapi\adodbapi.py”,第 676 行
,count = self.cmd.Execute()文件“”,第 2 行,在执行
文件“C:...PythonSoftwareFoundation.Python.3.9_qbz5n2kfra8p0\LocalCache\local-packages\Python39\site-packages\win32com\client\dynamic.py”,第 271 行,在ApplyTypes
result = self. oleobj .InvokeTypes(*(dispid, LCID, wFlags, retType, argTypes) + args)pywintypes.com_error: (-2147352567, '发生异常。', (0, 'Microsoft Cursor Engine', '多步操作产生错误。检查每个状态值。', None, 0, -2147217887), None)
在处理上述异常的过程中,又出现了一个异常:
回溯(最近一次通话最后):
cursor.execute(q)中的文件“d:\data.py”,第 63 行文件“C:...PythonSoftwareFoundation.Python.3.9_qbz5n2kfra8p0\LocalCache\local-packages\Python39\site-packages\adodbapi\adodbapi.py”,第 869 行,在执行
self._execute_command()
_execute_command self._raiseCursorError(klass, _message)中的文件“C:...PythonSoftwareFoundation.Python.3.9_qbz5n2kfra8p0\LocalCache\local-packages\Python39\site-packages\adodbapi\adodbapi.py”,第 684 行
_raiseCursorError eh(self.connection, self, errorclass, errorvalue)中的文件“C:...PythonSoftwareFoundation.Python.3.9_qbz5n2kfra8p0\LocalCache\local-packages\Python39\site-packages\adodbapi\adodbapi.py”,第 557 行文件“C:...PythonSoftwareFoundation.Python.3.9_qbz5n2kfra8p0\LocalCache\local-packages\Python39\site-packages\adodbapi\apibase.py”,第 50 行,在标准错误处理程序中
引发错误类(错误值)adodbapi.apibase.DatabaseError: (-2147352567, 'Exception occurred.', (0, 'Microsoft Cursor Engine', '多步操作产生错误。检查每个状态值。', None, 0, -2147217887), None)
命令:
从 [table_name] 中选择 A,B
参数:
[]
有什么建议么?