与Python SQL CE连接

问题描述 投票:0回答:2

问题陈述:提取存储在.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。

sql python-3.x sqlconnection adodbapi
2个回答
1
投票

看起来你有一个错字:

Provoider => Provider

0
投票

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异常不应该再提高。

© www.soinside.com 2019 - 2024. All rights reserved.