谁用过InstallShield 8.0, 在线请教!!!!

MFCboy 2003-08-21 10:06:16
我用InstallShield 8.0 建立一个web project 的setup,

但是不知道怎么使用InstallShield在sql server中建立一个DataBase,

谁用过, 请指教呀!

谢谢!!!
...全文
50 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
征先科技 2003-08-22
  • 打赏
  • 举报
回复
Dlg_SdAskDestPath:
szTitle = "";
szMsg = "";
nResult = SdAskDestPath( szTitle, szMsg, szDir, 0 );
INSTALLDIR = szDir;
if (nResult = BACK) goto Dlg_SdCustomerInformationEx;

Dlg_SetupType:
szTitle = "安装类型";
szMsg = "请选择您需要按哪种方式安装";
nResult = SetupType ( szTitle , szMsg , "" , nSetupType , 0 );
if (nResult = BACK) then
goto Dlg_SdAskDestPath;
else
nSetupType = nResult;
if (nSetupType != CUSTOM) then
szTargetPath = INSTALLDIR;
nvSize = 0;
FeatureCompareSizeRequired(MEDIA,szTargetPath,nvSize);
if (nvSize != 0) then
MessageBox( szSdStr_NotEnoughSpace, WARNING );
goto Dlg_SetupType;
endif;
endif;
endif;

Dlg_SdFeatureTree:
if ((nResult = BACK) && (nSetupType != CUSTOM)) goto Dlg_SetupType;
szTitle = "";
szMsg = "";
szTargetdir = INSTALLDIR;
szFeatures = "";
nLevel = 2;
if (nSetupType = CUSTOM) then
nResult = SdFeatureTree(szTitle, szMsg, szTargetdir, szFeatures, nLevel);
if (nResult = BACK) goto Dlg_SetupType;
endif;

Dlg_SdSelectFolder:
szfolder = SHELL_OBJECT_FOLDER;
szTitle = "";
szMsg = "";
nResult = SdSelectFolder( szTitle, szMsg, szfolder );
SHELL_OBJECT_FOLDER = szfolder;
if (nResult = BACK) goto Dlg_SdFeatureTree;
Dlg_AskSQL ://设置数据库服务器 对话框
szTitle = "设置数据库";
szMsg = "现在开始设置Microsoft SQL Server数据库系统";
szQuestion=" 请输入SQL SERVER数据库服务器的用户名和密码,安装程序将按照您上步提供的IP地址和下面的用户名和密码创建和优化数据库系统。如果您提供的用户名和密码是错误的,安装程序将自动跳过数据的设置!";
szSQLsvr="主机名:";
szSQLusr="用户名:";
szSQLpwd="密码:";
svSQLsvr="localhost";
svSQLusr="sa";
szSQLpwd="";
SetDialogTitle(DLG_ASK_TEXT,szTitle);
nResult=SdShowDlgEdit3 (szTitle, szQuestion,szSQLsvr,szSQLusr,"密码:",svSQLsvr,svSQLusr,svSQLpwd);
if (nResult = BACK) goto Dlg_SdSelectFolder;
Dlg_SdStartCopy:
listStartCopy = ListCreate( STRINGLIST );
ListAddString(listStartCopy,"用户名:"+szName+"\n\n",AFTER);
ListAddString(listStartCopy,"安装路径:"+szDir+"\n\n",AFTER);
ListAddString(listStartCopy,"程序组名:"+szfolder+"\n\n",AFTER);
ListAddString(listStartCopy,"序列号:"+svSerial,AFTER);
ListAddString(listStartCopy,"请确认您填写的信息,按下一步开始复制文件",AFTER);
szTitle = "";
szMsg = "";
nResult1 = SdStartCopy( szTitle, szMsg, listStartCopy );
Enable(STATUSEX);

nResult =CopyFile(SUPPORTDIR ^ "*.dll", SystemFolder ^ "*.dll");//拷贝DLL文件
if (nResult!=0) then
MessageBox ("配置失败,可能文件已存在!", INFORMATION);
endif;
nResult =CopyFile(SUPPORTDIR ^ "*.ini", SystemFolder ^ "*.ini");//拷贝DLL文件
if (nResult!=0 ) then
MessageBox("配置文件失败,可能文件已存在",WARNING);
endif;

SetStatusWindow(0, "");
// Enable(STATUSEX);
//StatusUpdate(ON, 100);
if (ReplaceProfString(SystemFolder ^"Dawnhis.ini", "Database", "LogPassword","1",
svSQLpwd) < 0) then;
MessageBox("向配置文件写入用户密码失败.", SEVERE);
endif;
if (ReplaceProfString(SystemFolder ^"Dawnhis.ini", "Database", "ServerName","NF1000",
svSQLsvr) < 0) then;
MessageBox("向配置文件写入服务器名失败.", SEVERE);
endif;
if (ReplaceProfString(SystemFolder ^"Dawnhis.ini", "Database", "LogId","sa",
svSQLusr) < 0) then;
MessageBox("向配置文件写入用户名失败.", SEVERE);
else
MessageBox("SQLSERVER用户配置成功.", INFORMATION);
endif;


ListDestroy(listStartCopy);
if (nResult1 = BACK) goto Dlg_SdSelectFolder;
nResult =CopyFile(SUPPORTDIR ^ "*.mdf", INSTALLDIR+"\data" ^ "*.mdf");//拷贝DLL文件
if (nResult!=0) then
MessageBox ("数据库拷贝错误!", INFORMATION);
endif;
Dlg_CreateDataBase:
CreateDataBase(svSQLsvr,svSQLusr,svSQLpwd); // 创建和优化数据库
if (AskYesNo("安装结束.想查看和光医疗系统简介文件吗? " +
"file now?", YES) = YES) then
LaunchApp("winword.exe", SUPPORTDIR ^"DAWHIS.doc" );
endif;
return 0;

end;
征先科技 2003-08-22
  • 打赏
  • 举报
回复
下面是全部源代码,一次不能全部回复:
////////////////////////////////////////////////////////////////////////////////
//
// 沈阳和光集团软件中心医疗事业部《医院管理系统》安装程序
//
////////////////////////////////////////////////////////////////////////////////

// Include header files
prototype CreateDataBase(STRING,STRING,STRING);


#include "ifx.h"
#include "isrt.h"


////////////////////// string defines ////////////////////////////

//////////////////// installation declarations ///////////////////

// ----- DLL function prototypes -----


// your DLL function prototypes


// ---- script function prototypes -----


// your script function prototypes

// your global variables



//////////////////////////////////////////////////////////////////////////////
//
// FUNCTION: OnFirstUIBefore
//
// EVENT: FirstUIBefore event is sent when installation is run for the first
// time on given machine. In the handler installation usually displays
// UI allowing end user to specify installation parameters. After this
// function returns, FeatureTransferData is called to perform file
// transfer.
//
///////////////////////////////////////////////////////////////////////////////
function OnFirstUIBefore()
number nResult,nSetupType;
number nResult1;
string sSetupType;
string szTitle, szMsg;
string szLicenseFile, szQuestion;
string szName, szCompany;
STRING szSQLsvr,szSQLusr,szSQLpwd,svSQLsvr,svSQLusr,svSQLpwd;
string szFile;
string szTargetPath;
string szDir;
string szfolder;
string szFeatures, szTargetdir;
number nLevel;
LIST listStartCopy;
LIST list;
number nvSize;
number nUser;
string svSerial;
string szField1,szField2;
number svEdit1,svEdit2,nOpt;
STRING szServerIP,szServerPort,szServerIPDefault,szServerPortDefault;
begin
// TO DO: if you want to enable background, window title, and caption bar title
SetTitle( @PRODUCT_NAME, 24, WHITE );
SetTitle( @PRODUCT_NAME, 0, BACKGROUNDCAPTION );
Enable( FULLWINDOWMODE );
Enable( BACKGROUND );
SetColor(BACKGROUND,RGB (0, 128, 128));

SHELL_OBJECT_FOLDER = @PRODUCT_NAME;

nSetupType = TYPICAL;
szDir = INSTALLDIR;
szName = "";
szCompany = "";

Dlg_Start:
// beginning of dialogs label

Dlg_SdWelcome:
szTitle = "";
szMsg = "";
nResult = SdWelcome( szTitle, szMsg );
if (nResult = BACK) goto Dlg_Start;

Dlg_SdLicense:
szLicenseFile = SUPPORTDIR ^ "README.TXT";
szTitle = "";
szMsg = "";
szQuestion = "";
nResult = SdLicense( szTitle, szMsg, szQuestion, szLicenseFile );
if (nResult = BACK) goto Dlg_SdWelcome;

Dlg_SdShowInfoList:
szFile = SUPPORTDIR ^ "README.TXT";
list = ListCreate( STRINGLIST );
ListReadFromFile( list, szFile );
szTitle = "";
szMsg = "";
nResult = SdShowInfoList( szTitle, szMsg, list );
ListDestroy( list );
if (nResult = BACK) goto Dlg_SdLicense;

Dlg_SdCustomerInformationEx:
szMsg = "";
szTitle = "";
svSerial= "";
nResult = SdCustomerInformationEx( szTitle, szName, szCompany,svSerial, nUser );
if (nUser = 0) then
szMsg = "单用户使用";
else
szMsg = "所有用户共享";
endif;
if (nResult = BACK) then
goto Dlg_SdShowInfoList;
else
if (svSerial != "zlw20030815") then
MessageBox("序列号有误,请与开发商联系!",WARNING);
goto Dlg_SdCustomerInformationEx;
else
MessageBox("您的注册信息是:\n\n" +
"姓名: " + szName + "\n" +
"公司: " + szCompany + "\n" +
"序列号: " + svSerial + "\n" +
"类型: " + szMsg,
INFORMATION);
endif;
endif;
征先科技 2003-08-22
  • 打赏
  • 举报
回复
下面代码我已经试过了安装成功!主0要是用sqlserver的osql工具

function CreateDataBase(svSQLsvr,svSQLusr,svSQLpwd)
STRING szCmdLine,szWaitTxt;
begin
szWaitTxt=" 正在创建"+@PRODUCT_NAME+"所需数据库....";
SdShowMsg (szWaitTxt, TRUE);
Delay(2);
szCmdLine = "/U "+svSQLusr+" /P "+svSQLpwd+" /S "+svSQLsvr+" /Q \"exec sp_attach_db N'dawnhistest' , N'"+ INSTALLDIR ^"data\\dawnhis.mdf'\"";
if (LaunchAppAndWait("osql.exe", szCmdLine,WAIT) < 0) then
MessageBox ("数据库创建失败!请确您的系统中已安装 Microsoft SQL Server 2000.\n如仍无法解决,请联系系统供应商!",SEVERE);
else


endif;
SdShowMsg (szWaitTxt, FALSE);
szWaitTxt=" 正在优化"+@PRODUCT_NAME+"系统数据库....";
SdShowMsg (szWaitTxt, TRUE);
Delay(2);
szCmdLine = "/U "+svSQLusr+" /P "+svSQLpwd+" /S "+svSQLsvr+" /Q \"use OASystem ; exec sp_updatestats\"";
if (LaunchAppAndWait("osql.exe", szCmdLine,WAIT) < 0) then
MessageBox ("数据库优化失败!您可以在 sql查询分析器中执行 \n use OASystem ; exec sp_updatestats \n完成!",SEVERE);
endif;
SdShowMsg (szWaitTxt, FALSE);
return 0;
end;
csharplove 2003-08-21
  • 打赏
  • 举报
回复
UP,关注

1,978

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 其他语言讨论
社区管理员
  • 其他语言社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧