最近在用VC、MFC和ACCESS开发一些小工具。
由于操作系统和开发工具以及数据库版本都升级了,和当年有一些区别了(我这是有多老了……fuck……),遇到一些问题,贴在下面:
1,用什么连接ACCESS?
以前用VS2005做过ACCESS相关的东西,当时的操作系统还是XP。
现在操作系统在用win7 64,VS2005装不上了(网上搜索了一下,有人说也能装上,我没有试过),换成了VS2013 Express版(也有可能是社区版,搞不清楚,反正是免费版本)。
以前xp的时候用DAO,现在的VS2013用DAO好像有问题,反正我以前的代码直接拿来用,没有成功。
就换成了ADO(话说这些名字怎么这么像),已经成功了,所以还想用DAO的朋友可以考虑换成ADO了。
这里有两个问题需要注意:
一个是驱动的名字要更换,“Provider=Microsoft.Ace.OleDb.12.0”,好多网上的例子还是4.0,已经不能用了(也可能是我没试出来,反正我是不能用)。
另外一个是,需要安装驱动AccessDatabaseEngine,我是64的系统,但是安装64位的驱动后,程序还是不正常,安装32位的驱动后正常。
2,找不到“adoEOF”属性
好多人在操作数据集的时候(没错,我说的就是_RecordsetPtr这货),找不到“adoEOF”这个属性,其实这个是当时写在stdafx.h文件里面的那句代码:
#import "C:\Program Files\Common Files\System\ado\msado15.dll" no_namespace rename("EOF","adoEOF")
有没有发现“adoEOF”这个傻名字,你这里写的什么,代码里面就用什么就好了,不一定非得那个名字,网上的示例代码这里也是一个坑;
3,释放数据库连接出错
网上好多例子里面写的就是先“xxx->Close();”再“xxx->Release();“,反正我是华丽丽的报错了,这里要用”xxx.Release();“,注意是点,不是箭头,不要问我为什么,我反正不知道。
暂时没遇到其他问题,遇到会陆续添加到这里。
由于操作系统和开发工具以及数据库版本都升级了,和当年有一些区别了(我这是有多老了……fuck……),遇到一些问题,贴在下面:
1,用什么连接ACCESS?
以前用VS2005做过ACCESS相关的东西,当时的操作系统还是XP。
现在操作系统在用win7 64,VS2005装不上了(网上搜索了一下,有人说也能装上,我没有试过),换成了VS2013 Express版(也有可能是社区版,搞不清楚,反正是免费版本)。
以前xp的时候用DAO,现在的VS2013用DAO好像有问题,反正我以前的代码直接拿来用,没有成功。
就换成了ADO(话说这些名字怎么这么像),已经成功了,所以还想用DAO的朋友可以考虑换成ADO了。
这里有两个问题需要注意:
一个是驱动的名字要更换,“Provider=Microsoft.Ace.OleDb.12.0”,好多网上的例子还是4.0,已经不能用了(也可能是我没试出来,反正我是不能用)。
另外一个是,需要安装驱动AccessDatabaseEngine,我是64的系统,但是安装64位的驱动后,程序还是不正常,安装32位的驱动后正常。
2,找不到“adoEOF”属性
好多人在操作数据集的时候(没错,我说的就是_RecordsetPtr这货),找不到“adoEOF”这个属性,其实这个是当时写在stdafx.h文件里面的那句代码:
#import "C:\Program Files\Common Files\System\ado\msado15.dll" no_namespace rename("EOF","adoEOF")
有没有发现“adoEOF”这个傻名字,你这里写的什么,代码里面就用什么就好了,不一定非得那个名字,网上的示例代码这里也是一个坑;
3,释放数据库连接出错
网上好多例子里面写的就是先“xxx->Close();”再“xxx->Release();“,反正我是华丽丽的报错了,这里要用”xxx.Release();“,注意是点,不是箭头,不要问我为什么,我反正不知道。
暂时没遇到其他问题,遇到会陆续添加到这里。