怎么把数据库打包!(15分)

  • 主题发起人 主题发起人 xiaolinworking
  • 开始时间 开始时间
X

xiaolinworking

Unregistered / Unconfirmed
GUEST, unregistred user!
[?][?][?]
怎么打包数据库!
 
就是把我已经编完的程序(包含数据库),打包成setup或exe文件,打包后的文件执行时不需要copy数据库!
 
不明白你的意思
好象一定要在发布代码的同时发布数据库和BDE的.
你的意思是不是把所有的文件做成一个安装文件?
如果是这样的话那就有很多工具了,我记得installshield公司的产品中就有一个.
 
你能说的具体些吗?什么打包工具?
 
将你的数据库文件 .MDF 和 .LDF 复制到目标机,然后再程序中线连接到master数据库,使用存储过程“sp_attach_db”将数据库导入目标机(具体的语法:
sp_attach_db @dbname=“mydatabase”,@filename1=“c:/mydatabasefilename.MDF”,@filename2=“c:/mydatabasename_log.LDF”
使用这条SQL语句你可以将你的数据库导入目标机(可以在SQL Query Anylize中直接运行);
你在SQL Enterprise中将你的数据库的SQL脚本到处后,在程序中连接Master数据库后,用Query组件执行就可以;
可用DELPHI做一个小程序,连接到安装程序里。这样就可以了。(前提要先安装好SQLSERVER),
servername := serverrecord.servername;
id := serverrecord.id;
pass := serverrecord.password;
ADOConnection1.ConnectionString := 'Provider=SQLOLEDB.1;'
+ 'Workstation ID=' + servername + ';'
+ 'Data Source=' + servername + ';'
+ 'Password=' + pass + ';'
+ 'Initial Catalog=master;'
+ 'User ID=' + id + ';'
+ 'Persist Security Info=True;'
+ 'Use Procedure for Prepare=1;'
+ 'Auto Translate=True;'
+ 'Packet Size=4096;'
+ ' Use Encryption for Data=False;'
+ ' Connect Timeout=30;'
+ ' Tag with column collation when possible=False';
ADOConnection1.Connected := true;
{test1=zgs,test2=yt}
{=============´Ó×¢²á±íÈ¡Êý¾Ý==================}
path_reg := 'Software/bstd_path/';
filename1 := 'test1_Data.MDF';
filename2 := 'test1_Log.LDF';
filename3 := 'test2_Data.MDF';
filename4 := 'test2_Log.LDF';
keyname := 'path';
freg := TRegistry.Create();
freg.RootKey := HKEY_CURRENT_USER;
FREG.OpenKey(path_reg, true);
path := freg.readstring(keyname);
freg.Free;
//showmessage(path);
filename1 := path + '/bstd/data/' + filename1;
filename2 := path + '/bstd/data/' + filename2;
filename3 := path + '/bstd/data/' + filename3;
filename4 := path + '/bstd/data/' + filename4;
{==============================================}
if RadioButton1.Checked = true then
begin
{===========ÅжÏÊý¾Ý¿âÊÇ·ñÒѾ­´æÔÚ=============×ܹ«Ë¾=====}
with adoquery1do
begin
close;
sql.Clear;
sql.Add('Select * from SysDatabases Where Name=test1');
try
open;
if RecordCount > 0 then
begin
if Application.MessageBox('×ܹ«Ë¾Êý¾Ý¿âÒѾ­´æÔÚ,Òª¸²¸ÇÂð?',
'Êý¾Ý¿â¿½±´Ïòµ¼_Ìáʾ£¡', MB_YESNO or MB_ICONWARNING) = ID_yes then
begin
with ADOQuery2do
begin
close;
sql.Clear;
sql.Text :=
'IF EXISTS (SELECT name FROM master.dbo.sysdatabases WHERE name = N''test1'')DROP DATABASE test1';
execsql;
end;
end
else
begin
application.Terminate;
modalResult := mrCancel;
end;
end;
except
Application.MessageBox('Êý¾Ý¿½±´Ê§°Ü,ÇëÈ·ÈÏMSSQL200ÒѾ­½¨Á¢',
'Êý¾Ý¿â¿½±´Ïòµ¼_Ìáʾ£¡');
application.Terminate;
modalResult := mrCancel;
end;
end;
end;
if RadioButton2.Checked = true then
begin
{===========ÅжÏÊý¾Ý¿âÊÇ·ñÒѾ­´æÔÚ==========ÓÍÌï========}
with adoquery1do
begin
close;
sql.Clear;
sql.Add('Select * from SysDatabases Where Name=test2');
try
open;
if RecordCount > 0 then
begin
if Application.MessageBox('×ܹ«Ë¾Êý¾Ý¿âÒѾ­´æÔÚ,Òª¸²¸ÇÂð?',
'Êý¾Ý¿â¿½±´Ïòµ¼_Ìáʾ£¡', MB_YESNO or MB_ICONWARNING) = ID_yes then
begin
with ADOQuery2do
begin
close;
sql.Clear;
sql.Text :=
'IF EXISTS (SELECT name FROM master.dbo.sysdatabases WHERE name = N''test2'')DROP DATABASE test2';
execsql;
end;
end
else
begin
application.Terminate;
modalResult := mrCancel;
end;
end;
except
Application.MessageBox('Êý¾Ý¿½±´Ê§°Ü,ÇëÈ·ÈÏMSSQL200ÒѾ­½¨Á¢',
'Êý¾Ý¿â¿½±´Ïòµ¼_Ìáʾ£¡');
application.Terminate;
modalResult := mrCancel;
end;
end;
end;
////////////////////////////////////////////
with ADOQuery1do
begin
close;
sql.Clear;
if RadioButton1.Checked = true then
sql.Add('sp_attach_db @dbname=''test1'',@filename1=''' + filename1
+ ''',@filename2=''' + filename2 + '''')
else
sql.Add('sp_attach_db @dbname=''test2'',@filename1=''' + filename3
+ ''',@filename2=''' + filename4 + '''');
try
execsql;
except
Application.MessageBox('Êý¾Ý¿½±´Ê§°Ü,ÇëÈ·ÈÏMSSQL200ÒѾ­½¨Á¢',
'Êý¾Ý¿â¿½±´Ïòµ¼_Ìáʾ£¡');
application.Terminate;
modalResult := mrCancel;
end;
end;
[:D]
 
制作安装程序时用WISE INSTALLER 就OK!想包含多大的数据库都行啊。
 
你用的什么数据库?
 
在DELPHI安装盘就有installshield打包工具,默认是不会自动安装的,你要先安装,然后把你的程序Built all做成EXE 文件,再用这个工具打包就行了
在打包时根据左侧的提示操作就行了,注意要根据你所使用的数据库不同,比如如果你用的是BDE,ADO等,在PROJECT/MERGE MODULES项目中选择相应的数据源就可以.在所有选择完成后执行Built命令,然后到你设置的打包文件目录找SETUP就可以了,只要Copy这一个Setup文件到客户机上就可以,如果是ODBC则可能需要在客户机上重新指定数据源.不过不用再装任何支持文件.
 
landerliu说的就是Delphi安装盘上带的那个installshield express limited for borland是installshield公司为borland提供的一个无限评估版,delphi7带的版本应该是4.X的,功能比较有限,不能做中文版的安装界面。我这里有个4.0的SP1完整版,可以做中文安装界面,但只支持D6的BDE不支持D7的BDE(支持D7的版本我还没有找到)。
使用方法我做了一个PowerPoint演示文件,你要的话把邮箱告诉我,我发给你。
如果你要installshield express4.0 SP1的话,我告诉你一个BT网址,我在那儿发了贴子,你可以去下载。
www.manfen.net
找BT学习资料下载的论坛页面,我在那儿有贴子。
 
菜鸟飞飞888,那就拜托你了!
xiaolinworking@126.com
 
后退
顶部