问题陈述:提取存储在.sdf文件到Python的数据。系统配置:赢得10 Pro的64位,蟒蛇3.5.2-64位,adodbapi库,SQL CE 3.5
我是相当新的编程,我已经拿起Python作为我的第一语言学习。目前,我已经在连接SQL CE 3.5 .sdf文件的过程中碰了壁。
我已经使用了adodbapi库。我已经在网上搜索,广泛在过去一周来找到解决这个问题,以确保我的连接字符串是正确的。我曾尝试提供堆栈溢出和https://www.connectionstrings.com/microsoft-sqlserver-ce-oledb-3-5/多个选项/解决方案。
码:
import adodbapi
cons_str = "Provider=Microsoft.SQLSERVER.MOBILE.OLEDB.3.5;" \
"Data Source=D:\Work\Programming\Python\SQL_DataTransfer\LF.sdf;"\
"Persist Security Info=False;" \
"SSCE:Max Database Size=4091"
connection = adodbapi.connect(cons_str)
print(connection)
错误信息:
回溯(最近通话最后一个):
文件 “d:\工作\程序\ Python35.virtualenvs \ sql_output \ LIB \站点包\ adodbapi \ adodbapi.py”,第93行,在make_COM_connecter C =讯( 'ADODB.Connection')#connect后CoIninialize V2.1.1 adamvan NameError:名字“调度”没有定义
在处理上述异常,另一个异常:
回溯(最近通话最后一个):
文件 “d:\工作\程序\ Python35.virtualenvs \ sql_output \ LIB \站点包\ adodbapi \ adodbapi.py”,第112行,在连接co.connect(kwargs)文件“d:\工作\程序\ Python35。 virtualenvs \ sql_output \ LIB \站点包\ adodbapi \ adodbapi.py “269线,在连接self.connector = connection_maker()文件” d:\工作\程序\ Python35.virtualenvs \ sql_output \ LIB \站点包\ adodbapi \ adodbapi.py”,第95行,在make_COM_connecter提高api.InterfaceError( “的Windows COM错误:调度( 'ADODB.Connection')失败”。)adodbapi.apibase.InterfaceError:视窗COM错误:调度('ADODB.Connection “)失败。
在处理上述异常,另一个异常:
回溯(最近通话最后一个):
文件 “d:/Work/Programming/Python/SQL_DataTransfer/SQL_CE_reportDB.py”,8号线,在连接= adodbapi.connect(cons_str)文件“d:\工作\程序\ Python35.virtualenvs \ sql_output \ LIB \站点包\ adodbapi \ adodbapi.py”,线路116,在连接加薪api.OperationalError(即,消息)adodbapi.apibase.OperationalError:(InterfaceError( “的Windows COM错误:调度( 'ADODB.Connection')失败”,)。 “错误打开连接到 “Provoider = Microsoft.SQLSERVER.MOBILE.OLEDB.3.5;数据源= d:\工作\程序\ Python的\ SQL_DataTransfer \ LF.sdf;坚持安全信息=假; SSCE:最大数据库大小= 4091” “)
在这一点上任何的帮助深表感谢。
谢谢你,真诚,JD。
看起来你有一个错字:
Provoider => Provider
adodbapi版本=“2.6.0.6”取决于pypiwin32安装在你的Python环境。对于adodbapi.py,从管线51:
if api.onIronPython:
from System import Activator, Type, DBNull, DateTime, Array, Byte
from System import Decimal as SystemDecimal
from clr import Reference
def Dispatch(dispatch):
type = Type.GetTypeFromProgID(dispatch)
return Activator.CreateInstance(type)
def getIndexedValue(obj,index):
return obj.Item[index]
else: # try pywin32
try:
import win32com.client
import pythoncom
import pywintypes
onWin32 = True
def Dispatch(dispatch):
return win32com.client.Dispatch(dispatch)
except ImportError:
import warnings
warnings.warn("pywin32 package (or IronPython) required for adodbapi.",ImportWarning)
def getIndexedValue(obj,index):
return obj(index)
在我的情况,我追踪的事实,(进口win32com.client)夹在除了块,但由于某种原因,在我的控制台没有显示警告信息调度功能没有定义,因为在第62行中生成一个ImportError异常。
尝试:
pip install pypiwin32
和上述ImportError异常不应该再提高。