vs2005的MFC工程——在XP的英语等其他非中文操作系统中报运行时异常

vs2005的MFC工程——在XP的英语等其他非中文操作系统中报运行时错误
问题:
VS2005工程设置为:Unicode字符集

使用的是简体中文的Vs2005(据其他同事说跟中英文编译环境没有关系),我的工程在我的电脑(XP中文版)运行正常,但是在测试电脑(XP的英文、法语等其他多语言的操作系统)就报“运行时”错误,但是在控制面板中的语言设置中将“为东亚语言安装文件”勾上,并且进行相应的安装,则程序正常运行,而我注意到XP中文版默认是选中“为东亚语言安装文件”的,所以之前在多语言操作系统下报错就是因为没有安装东亚语言文件,但是我的软件要给客户用,不能要求客户装这些文件,而且软件在我升级功能前,在多语言操作系统下是正确的,也就是说可以不需要安装东亚语言文件程序也可以在其他多语言操作系统下正常运行,由于做这个软件的人都已经离职,无从得知原因,现在百思不得其解,有没有高手指点一下啊

由于公司环境的限制,代码无法在测试环境下允许,所以也没法在自己的点上看到问题

提供线索:通过windbg跟踪,发现执行数据库的的excute()函数时出错,但是不知道为什么出错,而且为什么在中文操作系统就不出错呢


求指点
。。。。

明天继续提供线索


------解决方案--------------------
应该程序链接的数据库接口是ANSI的,可能用到了WideCharToMultiByte转换程序数据,没有代码页的情况下是不会成功的。使用Unicode的版本的数据库吧。
------解决方案--------------------
引用:
应该程序链接的数据库接口是ANSI的,可能用到了WideCharToMultiByte转换程序数据,没有代码页的情况下是不会成功的。使用Unicode的版本的数据库吧。



多谢,但是能不能说的更清楚些呢?
数据库接口以前的软件版本就是那样做的,我没有做修改,为什么我升级后的版本就会出现这样的问题。

再继续提供线索:
我的SQL语句是:strSql.Format(L"insert into Patient ID,CreateDate, DataType) values('%s','%s',‘%d’);"strID,DT,1);

在执行如下语句时出错:(_commandPtr command;)
command.Execute(NULL,NULL,adCmdText);
------解决方案--------------------
up
自己顶
------解决方案--------------------
继续跟踪

发现将SQL语句改为“select * from Patient”就不会出错了

而且以为原来的SQL语句“ strSql.Format(L"insert into Patient ID,CreateDate, DataType) values('%s','%s',‘%d’);"strID,DT,1);   ”中的时间格式在XP英文系统下无法识别造成的错误,但是将insert语句中的时间去掉,还是 出现同样的错误

这个问题非常之蹊跷,难道都没有人会么。。。。。

------解决方案--------------------
Unicode字符集,一般都是多字节出错。
你升级的数据版本有问题呢?
DataType 是整形的还是字符型的啊?
‘%d’  不需要‘’吧


------解决方案--------------------
引用:
Unicode字符集,一般都是多字节出错。
你升级的数据版本有问题呢?
DataType 是整形的还是字符型的啊?
‘%d’ 不需要‘’吧


DataType在access数据库中是“数字”类型

最近在忙其他事情
今天发现我在XP英文系统下运行以前软件版本的源码也发现同样的问题
但是以前软件版本打包的安装文件(以前同事打包的安装文件)就不会出现此问题

继续UP,望高人指点。。。。。
------解决方案--------------------
继续求救。。。。
有没有碰到类似问题的高手们
------解决方案--------------------
有些进展了
发现时数据库版本的问题
但是还不是非常清楚

发现用旧版本数据库
在XP英文系统下运行软件,软件导入数据时正常运行

但是把旧版本的数据库用ACCESS2007打开,不做任何改变
在XP英文系统下运行软件,则出现“Runtime error”

而且我发现虽然用ACCESS2007打开旧版本数据库,但是标题处会显示access2002~2003格式
所以旧版本的数据库应该是access2002~2003版本
难道只能用access2003版本编辑数据库才不会出错
这个我后续要验证

还有就是,虽然用access2007打开access数据库,但是我另存为access2002~2003格式后
保存前后用二进制对比,差别很大,而且使用另存的数据库,运行软件也会出现“Runtime error”的错误