Your Ad Here
首页 | 编程语言 | 网站建设 | 游戏天堂 | 冲浪宝典 | 网络安全 | 操作系统 | 软件时空 | 硬件指南 | 病毒相关 | IT 认证
软讯网络 > 冲浪宝典 > 网络资源 > 如何制作数据库安装程序
【标  题】:如何制作数据库安装程序
【关键字】:数据库,程序,安装,安装程序
【来  源】:网络

如何制作数据库安装程序

Your Ad Here


   
Dlg_SetupDatabase://安装数据库的界面
szMsg="请选择应用程序安装类型";
szTitle="应用程序安装类型";
SetupDatabase="服务器端";
noSetupDatabase="客户端";
svCheck1=TRUE;
svCheck2=FALSE;
nResult=AskOptions(EXCLUSIVE,szMsg,SetupDatabase,svCheck1,noSetupDatabase,svCheck2);
if nResult=BACK goto Dlg_SdRegisterUserEx;
if svCheck1=TRUE then
goto Dlg_SdShowDlgEdit3;
endif;
//modify by sds
//if svCheck2=TRUE goto Dlg_SdAskDestPath;
if svCheck2=TRUE goto Dlg_SdShowDlgEdit3;

Dlg_SdShowDlgEdit3:
szTitle="请输入数据库信息";
szMsg="请输入数据库信息";
ServerName="服务器名称";
UserName="用户名称";
Password="数据库口令";
svEdit1="";
svEdit2="sa";
svEdit3="";
nResult=SdShowDlgEdit3(szTitle,szMsg,ServerName,UserName,Password,svEdit1,svEdit2,svEdit3);
//这个地方要产生一个脚本文件CreateDatabase.Sql;

//if (nResult=BACK) goto Dlg_SetupDatabase;
if (nResult=BACK) then
goto Dlg_SetupDatabase;
else
WriteProfString (WINSYSDIR^"DbInfo.ini", "DatabaseInfo", "ServerName",svEdit1);
WriteProfString (WINSYSDIR^"DbInfo.ini", "DatabaseInfo", "UserName",svEdit2);
WriteProfString (WINSYSDIR^"DbInfo.ini", "DatabaseInfo", "PassWord",svEdit3);
if (svCheck2=TRUE) goto Dlg_SdAskDestPath;
if svCheck1=TRUE then

OpenFileMode(FILE_MODE_APPEND);
CreateFile(DataBaseHandle,WINSYSDIR,"CheckDataBaseInfo.Bat");
//dbCheck.Sql--应该是我们自己带的SRCDIR^
CheckDataBaseJbStr="@isqlw -S %s -d master -U %s -P %s -i "+SRCDIR^"dbCheck.sql -o "+WINSYSDIR^"out2.txt";
Sprintf(CheckDataBaseJbStr,CheckDataBaseJbStr,svEdit1,svEdit2,svEdit3);
WriteLine(DataBaseHandle,"@echo 正在检查数据库信息请稍等...");
WriteLine(DataBaseHandle,CheckDataBaseJbStr);
CloseFile(DataBaseHandle);
LaunchAppAndWait(WINSYSDIR^"CheckDataBaseInfo.Bat","",WAIT);
//写DBInfo文件让系统可以初始话BDE的配置

OpenFileMode(FILE_MODE_NORMAL);

OpenFile(OutHandle,WINSYSDIR,"out2.txt");
GetLine(OutHandle,OutStr);
if OutStr='1' then
MessageBox("该数据库存在,本次安装将不在安装数据库",WARNING);
CloseFile(OutHandle);
//DeleteFile(WINSYSDIR^"CheckDataBaseInfo.Bat");
//DeleteFile(WINSYSDIR^"out2.txt");
goto Dlg_SdAskDestPath;//不进行选择数据库的安装了
endif;

endif;
endif;
/*else
*/
//增加一个公司标示界面来插入数据---这个界面要负责产生InsertCompInfo.sql文件,让安装数据库的时候调用
Dlg_SdShowDlgEdit2:
szTitle="请输入公司信息";
szMsg="请输入公司信息";
CompName="公司名称";
CompInfo="系统标识";
nResult=SdShowDlgEdit2(szTitle,szMsg,CompName,CompInfo,CompNameStr,CompInfoStr);
if (nResult)=BACK then
goto Dlg_SdShowDlgEdit3;
else
OpenFileMode(FILE_MODE_APPEND);
CreateFile(CompHandle,WINSYSDIR,"InsertCompInfo.sql");
CompStr="insert into XTBZ(XTDM,XTMC) values("+"'" +"%s"+"'"+",'"+"%s"+"') ";
Sprintf(CompStr,CompStr,CompNameStr,CompInfoStr);
WriteLine(CompHandle,"use xs ");
WriteLine(CompHandle,CompStr);
WriteLine(CompHandle,"go");
CloseFile(CompHandle);
endif;
Dlg_DataBase: //选择安装数据库
szMsg="请选择数据库安装路径";
szTitle="数据库安装程序";
svDestDir="C:\\";
nResult=AskDestPath ("数据库文件路径", szMsg, svDestDir, 0);
//写文件

if (nResult=BACK) then
goto Dlg_SdShowDlgEdit2;
else
if GetDiskSpace(svDestDir)<10485760 then
MessageBox("磁盘空间太少了",WARNING);

goto Dlg_DataBase;
else
/*if (ExistsDir(svDestDir+"\\Data"))!=EXISTS then
CreateDir(svDestDir+"\\Data");
endif;*/
CreateDir(svDestDir+"\\Data");
//写批处理文件了创建数据库,svEdit1,是服务器名称svEdit2,是用户名称,svEdit3是数据库密码
//先要写创建数据库的脚本文件
OpenFileMode (FILE_MODE_APPEND);
CreateFile(DataBaseHandle,WINSYSDIR,"CreateDatabase.Sql");
// Sprintf
CDataBaseSql="CREATE DATABASE xs "+
" ON "+
"( NAME = xs_dat"+", "
+" FILENAME="+"'"+"%s"+"'"
+" )LOG ON (NAME=xs_log"+
",FileName="+"'"+"%s"+"'"
+")";
LogFileName=svDestDir+"Data\\"+"xs_log.ldf";
DataBaseFileName=svDestDir+"Data\\"+"xs_dat.mdf";
Sprintf(DataBaseMsg,CDataBaseSql,DataBaseFileName,LogFileName);

WriteLine(DataBaseHandle,DataBaseMsg);
CloseFile(DataBaseHandle);
OpenFileMode(FILE_MODE_APPEND);
CreateFile(DataBaseHandle,WINSYSDIR,"ExecuteSql.Bat");
//dbCheck.Sql--应该是我们自己带的SRCDIR^
CheckDataBaseJbStr="@isqlw -S %s -d master -U %s -P %s -i "+WINSYSDIR^"CreateDatabase.Sql -o "+WINSYSDIR^"out1.txt";
TableXsStr="@isqlw -S %s -d master -U %s -P %s -i "+SRCDIR^"Table_xs.Sql -o "+WINSYSDIR^"out1.txt";
CompStr="@isqlw -S %s -d master -U %s -P %s -i "+WINSYSDIR^"InsertCompInfo.sql -o "+WINSYSDIR^"out1.txt";
Sprintf(CheckDataBaseJbStr,CheckDataBaseJbStr,svEdit1,svEdit2,svEdit3);
Sprintf(TableXsStr,TableXsStr,svEdit1,svEdit2,svEdit3);
Sprintf(CompStr,CompStr,svEdit1,svEdit2,svEdit3);
WriteLine(DataBaseHandle,"@echo 正在创建数据库请稍等...");
WriteLine(DataBaseHandle,CheckDataBaseJbStr); //创建数据库
WriteLine(DataBaseHandle,"@echo 正在更新脚本语言请稍等...");
WriteLine(DataBaseHandle,TableXsStr);//写Table_xs的文件;
WriteLine(DataBaseHandle,"@echo 正在插入公司信息请稍等...");
WriteLine(DataBaseHandle,CompStr);//插入公司标示
CloseFile(DataBaseHandle);
LaunchAppAndWait(WINSYSDIR^"ExecuteSql.Bat","",WAIT);
DeleteFile(WINSYSDIR^"CreateDatabase.Sql");
DeleteFile(WINSYSDIR^"InsertCompInfo.sql");
DeleteFile(WINSYSDIR^"ExecuteSql.Bat");
DeleteFile(WINSYSDIR^"out1.txt");
MessageBox("恭喜数据库安装成功",INFORMATION);
endif;
endif;

上面的是通过脚本来完成的!(对InstallSheild脚本熟悉的人应该能看懂)

ms sql server数据库无法输入简单体字:【上一篇】
如何得到一个数据库中每个表格的数据数目:【下一篇】
【相关文章】
  • ms sql server数据库无法输入简单体字
  • Microsoft SQL Server 7.0安装问题
  • MSSQL生成整个数据库的SQL脚本的工具
  • 在Linux下访问MSSQLServer数据库
  • 用VC程序来创建SQL Server ODBC数据源
  • MYSQL创建、删除和选择数据库
  • 获取MYSQL数据库和表的有关信息
  • MYSQL客户机程序3—产生连接代码模块
  • MYSQL客户机程序4—在运行时获取连接参数
  • 客户机程序5—MYSQL交互式查询程序
  • 【随机文章】
  • 无盘站内存不足巧解决
  • zgrep
  • 快闪手册——Ctrl键的妙用
  • EJB(Enterprise JavaBeans)入门(3)
  • IBM X366服务器&DS400光纤存储柜双机热备方案
  • BB黑莓手机使用方法部分。
  • 博客堂新版本功能集
  • C++中 字符串转换方法
  • C Java PHP Perl Python 的程序代码美化工具
  • Google对付桥页作弊的方法 - 供百度开发人员参考
  • 【相关评论】
    没有相关评论
    【发表评论】
    姓名:
    邮件:
    随机码*
    评论*
          
    |  首 页  |  版权声明  |  联系我们   |  网站地图  |
    CopyRight © 2004-2007 软讯网络 All Rigths Reserved.