文档章节

Python使用win32com操控Access

Ev4n
 Ev4n
发布于 2016/08/16 17:58
字数 617
阅读 415
收藏 0

网上的教程很多啊,有必要写个这个么?我也这么期待着,可是,这个过程没那么简单。

为什么选择python来操控Access数据库呢?因为我电脑上没有.net啊!加之自己对python的强大功能相当的自信,就顺其然的选择了。从前使用python操作postgresql也没什么难处啊,于是就信誓旦旦的开始了。

这里就是简单的操作过程。姑且放下相关函数,来准备工具吧。

步骤一:选择三方库。

python肯定没有自带的函数,但是可以拓展嘛。网上的有推荐win32com,看起来很符合要求,虽然我从没有接触过。win32com只能从sourceforge  这里选择对应的包,但是,但是具体的位数呢?是32位还是64呢?根据我自己的python来吧,64位的电脑当然要安装64位的python啦,于是就下来64位的。(实际上最开始安装32位的是在注册表中找不到我的python)

步骤二:安装Microsoft Access Database Engine 2010 Redistributable

这个官方有对应的免费下载,可是,可是还是要选择64啊,嗯,一朝64,总是选择64位吧。下载后安装,一切顺利。

步骤三:写代码。

Python 2.7.10 (default, May 23 2015, 09:44:00) [MSC v.1500 64 bit (AMD64)] on win32
Type "copyright", "credits" or "license()" for more information.
>>> import win32com.client as client
>>> conn=client.Dispatch('ADODB.Connection')
>>> DSN = 'PROVIDER=Microsoft.Jet.OLEDB.4.0;DATA SOURCE=e:\\aaa.mdb;'
>>> conn.Open(DSN)

然后,就这玩意了。

Traceback (most recent call last):
  File "<pyshell#3>", line 1, in <module>
    conn.Open(DSN)
  File "<COMObject ADODB.Connection>", line 3, in Open
  File "D:\python27\lib\site-packages\win32com\client\dynamic.py", line 287, in _ApplyTypes_
    result = self._oleobj_.InvokeTypes(*(dispid, LCID, wFlags, retType, argTypes) + args)
com_error: (-2147352567, '\xb7\xa2\xc9\xfa\xd2\xe2\xcd\xe2\xa1\xa3', (0, u'ADODB.Connection', u'\u672a\u627e\u5230\u63d0\u4f9b\u7a0b\u5e8f\u3002\u8be5\u7a0b\u5e8f\u53ef\u80fd\u672a\u6b63\u786e\u5b89\u88c5\u3002', u'C:\\Windows\\HELP\\ADO270.CHM', 1240655, -2146824582), None)

先看看那一段unicode是什么吧。发生意外,ADODB.Connection 未找到提供程序。该程序可能未正确安装。这个问题在百度里很多啊,但是很多都是IIS中连接Access数据库时,这个我确实没辙了。

这位仁兄提到各种位数的问题,我于是测试了 Engine 32位的,但是安装之前要卸掉刚安好的64位,做吧。结果没有变化。这里的论坛有过相关话题,但是还是没有解决。

最后吧,还是全换成了32位的了,可以了。

坑!

© 著作权归作者所有

共有 人打赏支持
Ev4n
粉丝 5
博文 13
码字总数 9845
作品 0
成都
python处理word文件:win32com用法详解

目标:用python处理doc文件 方法:引入win32com模块 ** 一、安装 ** 首先要先下载安装win32com模块(起先在linux下装不成功,后在windows下面成功了。。。) 下载地址:http://sourceforge....

彼得
2014/07/21
0
3
python使用win32com的心得

python可以使用一个第三方库叫做win32com达到操作com的目的,我是安装了ActivePython的第三方库,从官网下载了安装包,该第三方库几乎封装了所有python下面的win32相关的操作,例如win32api,...

zxcholmes
2015/07/28
0
0
Python文本数据互相转换(pandas and win32com)

(工作之后,就让自己的身心都去休息吧) 今天介绍一下文本数据的提取和转换,这里主要实例的转换为excel文件(.xlsx)转换world文件(.doc/docx),同时需要使用win32api,同pywin32库。 pand...

James·Joshua
昨天
0
0
使用Python操纵Office, 添加Outlook的联系人

使用的是Windows Mobile 的手机。 2B的Windows同步软件缺省会用PC上的覆盖手机上的内容,即使PC上一条记录也没有,也会把手机上面的记录全部清空。 而且发现不同手机操作系统的手机通讯录无法...

junanhonglei
2011/08/26
0
0
python模块:win32com用法详解

python模块:win32com用法详解 使用技巧 import win32com from win32com.client import Dispatch, constants w = win32com.client.Dispatch('Word.Application') # 或者使用下面的方法,使用启......

木雨山
2012/06/28
0
3

没有更多内容

加载失败,请刷新页面

加载更多

下一页

Spring Cloud Gateway真的有那么差吗?

前言 Spring Cloud从一开始最受大家质疑的就是网关性能,那是由于Spring Cloud最初选择了使用Netflix几年前开源的Zuul作为基础,而高性能版的Zuul 2在经过了多次跳票之后,对于Spring这样的整...

Java小铺
45分钟前
1
0
SpringBoot远程调试,远程debug你的线上项目

开发环境中代码出错了,可以利用IDE的debug功能来进行调试。那线上环境出错呢? 一、假设我们的项目是部署在tomcat中,那我们就需要对tomcat进行一定对配置,配置如下。 1. windows系统中,找...

nonnetta
50分钟前
0
0
JAVA秒杀优化方向

秒杀优化方向 将请求尽量拦截在系统上游:传统秒杀系统之所以挂,请求都压倒了后端数据层,数据读写锁冲突严重,几乎所有请求都超时,流量虽大,下单成功的有效流量甚小,我们可以通过限流、...

小贱是个程序员
57分钟前
0
0
C# 统计字符串中大写字母和小写字母的个数

static void Main() { int count1 = 0; int count2 = 0; Console.WriteLine("请输入字符串"); string str = Convert.ToString(Consol......

熊二的爸爸是谁
59分钟前
0
0
分布式服务框架之远程通讯技术及原理分析

在分布式服务框架中,一个最基础的问题就是远程服务是怎么通讯的,在Java领域中有很多可实现远程通讯的技术,例如:RMI、MINA、ESB、Burlap、Hessian、SOAP、EJB和JMS等,这些名词之间到底是...

老道士
今天
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部