摘要: 在做“数据库加载”时报错“ODBCBCP driver version mismatch” 这篇文章解释了在执行Sage Accpac ERP和Microsoft SQL Server (SQL)数据库结合的操作时可能存在的数据被破坏的问题。 数据被破坏的发生,可能是由于在工作站上运行Sage Accpac时,SQLSRV32.DLL和ODBCP.DLL版本的和终端服务器的相应文件不匹配引起。这些文件在 \Windows\System32文件夹。当卸载工作站时,当前版本的ODBCBCP.DLL文件被移除,而卸载非Sage的其他程序也可能会移除此文件。当安装系统管理模块(System Manager,即SM)模块53B或更早版本时,SM不会覆盖这个文件(如果ODBCBCP.DLL文件早已存在),这样就可能导致在处理大批量地加载数据到数据库时产生数据被破坏的事,比如一次性过帐销售定单(Order Entry)和采购定单(Purchase Order)模块的交易超过40个批次,过帐时可能被错误“Error=0”中止,而后的日终处理(DEP)也可能被错误中止。在这样的情况下,就只好手工修复数据库或还原数据库备份了。 在做“数据库加载”时也可能因ODBCP驱动版本的不匹配产生这个错误。 解决方法: 在Windows XP SP2之前版本的操作系统,因为其MDAC组件在系统管理和工作站安装时会安装正确版本的ODBCP.DLL文件。如果安装Windows XP Service Pack2,一部分安装过程将被忽略,如果工作站使用的是 Microsoft Windows XP Professional,要重新安装Service Pack 2。另外,还有以下选项可使用: 在Microsoft MSDN网站下载最新版本的MDAC。 在工作站安装SQL客户端工具,并且应用最新的SQL补丁。现在早就有SQL 2000的Service Pack 4了。 检查所有的ACCPAC工作站上是否有潜在的问题: 1. 浏览文件夹 \Windows\System32。 2. 右键ODBCBCP.DLL,查看属性。 3. 在“版本”页面查看版本号。 4. 重复如下操作查看SQLSRV32.DLL 文件的版本号,看两个文件版本是否匹配。 不要卸载工作站。 重要提醒 如果数据库的路径设置不对也可能出这样的错。在这种情况下,必须删除并重建系统数据库ID和公司数据库ID。 在SM SP3以前这类错误很可能是由于公司/系统数据库没有设置好引起,比如目标公司/系统数据库不存在了或已经被改名。ACCPAC53B打SM SP3可以修正,但会产生另一错误“ Error 49153 ”。
注:MDAC(Microsoft Data Access Components)是微软数据库访问组件,许多利用数据库的软件都需要操作系统安装MDAC。很多用户的操作系统中已经存在了MDAC,有些是操作系统内置的、有些是其它应用程序安装的。 [此帖子已被 stone 在 2007-12-22 15:47:40 编辑过] |