连接到Python中的MS Access
我尝试了许多来自internet的示例,以将MS Access连接包括到我的python项目,但没有成功 我在Eclipse中使用Anaconda进行python项目,代码如下:连接到Python中的MS Access,python,python-3.x,python-2.7,ms-access,pyodbc,Python,Python 3.x,Python 2.7,Ms Access,Pyodbc,我尝试了许多来自internet的示例,以将MS Access连接包括到我的python项目,但没有成功 我在Eclipse中使用Anaconda进行python项目,代码如下: import win32com.client import pyodbc def ado(): ''' connect with com dispatch objs ''' conn = win32com.client.Dispatch(r'ADODB.Connection') DSN = ('PR
import win32com.client
import pyodbc
def ado():
'''
connect with com dispatch objs
'''
conn = win32com.client.Dispatch(r'ADODB.Connection')
DSN = ('PROVIDER = Microsoft.Jet.OLEDB.4.0;DATA SOURCE = ' + db + ';')
conn.Open(DSN)
rs = win32com.client.Dispatch(r'ADODB.Recordset')
strsql = "select * from Empresas"
rs.Open(strsql, conn, 1, 3)
t = rs.GetRows()
conn.Close()
return t
def odbc():
'''
connects with odbc
'''
constr = 'Driver={Microsoft Access Driver (*.mdb, *.accdb)};Dbq=' + db
conn = pyodbc.connect(constr, autocommit=True)
cur = conn.cursor()
strsql = "select * from Empresas"
cur.execute(strsql)
t = list(cur)
conn.close()
return t
if __name__ == '__main__':
db = 'D:/EMP001/2018/example.mdb'
data1 = ado()
data2 = odbc()
使用data1,我得到以下消息:
pywintypes.com_错误:(-2147352567,'Ocurrióuna execpción.,(0,'ADODB.Connection','No se encontróel proveedor specificado.Es possible que No estéinstalado correctante','C:\WINDOWS\HELP\ADO270.CHM',1240655,-2146824582),无)
用数据2这个:
pyodbc.InterfaceError:('IM002'、'[IM002][Microsoft][Administrator de controladores ODBC]没有数据原始名称的附件,也没有特定的控件预定义(0)(SQLDriverConnection)'))
有什么想法吗?在这两种情况下,错误消息都表示找不到驱动程序(ODBC)或提供程序(ADO) 在ODBC中,是否确实安装了此驱动程序 您可以使用
pyodbc.drivers()
例如,在我的例子中,我使用此驱动程序读取MS Access数据
Microsoft Access驱动程序(*.mdb)
您可能拥有32位访问权限(Office)和64位Python。正如您所知,32位和64位是完全不兼容的。您需要安装32位Python,或者将Access(Office)升级到64位,然后它就可以工作了。简而言之,您无法(在应用程序级别)将64位Python.exe连接到32位MS Access ODBC驱动程序(odbcad32.exe),因为不同类型的数据存储和处理方式不同。但是,对于向后兼容性,建议使用最小公分母,因为64位操作系统可以运行32位应用程序,而相同级别的程序可以相互“对话”。请查看下面的URL以了解所有详细信息
是的,我在windows的管理工具上配置了ODBC驱动程序,但在eclipse中似乎无法识别。