Installshield2009中使用osql.exe执行数据库脚本

Installshield2009中,执行数据库脚本,添加连接都很简单.
问题是:在不同的安装Feature下,有的Feature下需要使用OnSQLLogin,显示数据库连接对话框,用户输入数据库连接配置信息.而有的Feature下面,压根就不需要有数据库配置.而IDE环境配置的数据库连接,在什么Feature都会连接.谁可以告诉我,实现这个需求,用IDE SQL SCRIPTS里面的方式如何去做.

如下是我的解决方案:

1.导出数据库创建脚本
2.使用SQL2000提取的osql.exe去执行数据库脚本,可以在没有安装SQLSERVER的机器运行它,这个很方便,之前用过ADO的方式连接执行sql脚本,问题是要执行些系统存储过程,哪怕用SA的帐号和密码也不会成功(查询分析器里面运行成功),用osql.exe轻松搞定.
大概的IS代码如:


szMsg="Execute grant sql.";
         SdShowMsg (szMsg, 
TRUE);   
         szScriptFile
=INSTALLDIR^"Component\\grant.sql"
         szPara
="-S "+gSQLServer+" -U "+gSQLUser+" -P "+gSQLPass+" -i \""+szScriptFile+"\"";
         WriteLog(
"szPara:"+szPara);
         result
= LaunchAppAndWait(SUPPORTDIR^"osql.exe",szPara,LAAW_OPTION_WAIT|LAAW_OPTION_HIDDEN);    
         Sprintf(szMsg,
"Execute grant SQLScript result is %ld",result); 

 

 

SUPPORT目录的osql.exe 下载:DOWNLOAD

posted on 2009-06-16 16:12  Haozes  阅读(1374)  评论(0编辑  收藏  举报