SqlDMO使用是遇到的相关错误记录
在Installshield中调用VC或VB写的Com组件去操作数据库。用VB6封装SQLDMO的操作数据库服务器相关的操作,包括创建数据库,修改SQL 登录模式,添加用户名等,用VC封装msado15.dll去操作数据库中数据信息,包括创建表和写初始数据等。
客户机不安装Sql server,则无法使用SQLDMO组件,因为客户机上面不存在这个dll。后下载了sql 2000 MSDE sp4版本进行安装之后,查看msde的版本为8.00.2039,这个是sp4的版本号。数据库服务器安装sql2000 sp4,版本号也为8.00.2039时,安装程序进行连接安装时,一切正常。但是微软有出一个针对sql 2000 和msde的一个补丁(KB960082),属于系统自动更新可以安装的补丁,安装之后版本号变成了8.00.2055,此时再进行安装的话就会出现一个很奇怪的错误,不想是SQLDMO报出来的错,感觉想是installshield报出来的错误。
点击细节之后主要内容如下:
错误代码: -5011 : 0x800a0006
错误信息:
>SetupNew\setup.cpp (449)
刚开始看感觉这个错误是因为你要连接的数据库服务器版本比客户端的msde的版本高,因为在客户端仅安装了msde的时候连接sql2005进行安装的时候也会出现这个错误,后来在客户端也打上这个补丁(KB960082)之后版本都变成8.00.2055,但是安装的时候还是会出现这个错误,无解了。难道当数据库服务器是Sql2000且版本号为8.00.2055时(打上微软的那个补丁)时,使用SQLDMO进行数据库相关操作的时候均会出错吗?但是感觉这个错误也不像是我们写的程序抛出来的啊。先记录下错误现在,找到原因了再来告诉各位。