搬家第41天-citect2018使用cicode连接access2016数据库的调试经历

以前在7.4版本Cicode过连接access2013,用odbc方式,今天在2018版本练习了一下,还是有点不一样的。

一开始,使用下面的连接语句,不好使
FUNCTION ConnAccessDB()
hSQL=SQLConnect("DSN=myaccess;UID=;PWD=")
IF hSQL<>-1 THEN
Message("Information","连接Access数据库成功",48)
ELSE
Message("Information", SQLErrMsg(), 48)
END
END
发现连接语句中驱动文件类型是*.mdb,实际类型是accdb,于是天真的把语句改成
hSQL=SQLConnect("Driver={Microsoft Access Driver(*.accdb)};DBQ=E:\Citect2018Prj\citect2018prj7\report.accdb"),还是不好使。
 
于是自己定义了一个DNS,定义DNS的过程中也发现,access数据库文件只有*.mdb类型的,可我的是*.accdb啊,再次天真的定义了DNS,选择文件时,不过滤文件类型,显示所有文件,然后选择E:\Citect2018Prj\citect2018prj7\report.accdb,将连接语句改成
hSQL=SQLConnect("DSN=myaccess;UID=;PWD=")
 
运行一下,还是不好使。看来还是知识基础差。去微软官网从新下载了一个access驱动,(下载地址:https://download.microsoft.com/download/E/4/2/E4220252-5FAE-4F0A-B1B9-0B48B5FBCCF9/AccessDatabaseEngine_X64.exe),这下odbc中的access驱动有*.accdb文件了。有一次试验了一下,还是不行。
检查了一下office套件,是32位的,系统是64位的。果断卸载了32位版本的office,安装了64位版本的office。再次运行,还是不好使。有点折磨人了。
仔细看了一下前面安装的access的ODBC驱动是access2010版的,会不会和access2016不兼容?去微软官网下载一个2016版本的,选x64的(下载地址:https://www.microsoft.com/en-us/download/confirmation.aspx?id=54920)
再次运行,还是连不上,同样的错误提示。
打开report.accdb文件另存为2000-2003版本的report.mdb,先删掉原来的DSN,然后再windows\syswow64下运行odbcad32.exe,新建一个dsn,名字叫做myaccess,指向刚才另存问report.mdb文件。再次运行项目程序,现在可以连接上了。
我觉得还是citect软件自身的问题,应该和微软关系不大。
posted @ 2021-03-10 20:07  来自金沙江的小鱼  阅读(259)  评论(0编辑  收藏  举报