【发布时间】:2018-06-08 09:49:05
【问题描述】:
我尝试了很多来自 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 = ('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_error: (-2147352567, 'Ocurrió una excepción.', (0, 'ADODB.Connection', 'No se encontró el proofedor especificado. Es posible que no esté instalado correctamente.', 'C:\WINDOWS \HELP\ADO270.CHM', 1240655, -2146824582), 无)
还有 data2 这个:
pyodbc.InterfaceError: ('IM002', '[IM002] [Microsoft][Administrador de controladores ODBC] No se encuentra el nombre del origen de datos y no se especificó ningún controlador predeterminado (0) (SQLDriverConnect)')
有什么想法吗?
【问题讨论】:
标签: python python-3.x python-2.7 ms-access pyodbc