求助:数据库备份问题以及程序打包安装问题
我做了一个小型的MIS系统。碰到几个问题,想向大家请教。
开发工具:DELPHI6 SQL7.0
打包工具:InstallShield Developer8.0
碰到二个备份问题,
第一,如何将数据库用DELPHI语句备份以及用DELPHI语句恢复数据库资料。
第二,将程序打了包以后,在安装的过程中能够顺利安装,没有出现任何提示,
但是在运行程序的时候,打开程序的时候,登录敞口出现的很慢,感觉连不上数据库。
数据库存在。想向大家请教大约会是哪个方面的错误。
问题点数:60、回复次数:10Top
1 楼oklida(JAVA战士)回复于 2003-12-03 08:49:43 得分 20
备份和恢复
procedure TForm1.Button1Click(Sender: TObject);
begin
if OpenDialog1.Execute then
begin
try
adoconnection1.Connected:=False;
adoconnection1.ConnectionString:='Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;Initial Catalog=master;Data Source=FRIEND-YOFZKSCO;'+
'Use Procedure for Prepare=1;Auto Translate=True;Packet Size=4096;Workstation ID=FRIEND-YOFZKSCO;Use Encryption for Data=False;Tag with column collation when possible=False';
adoconnection1.Connected:=True;
with adoQuery1 do
begin
Close;
SQL.Clear;
SQL.Add('Backup DataBase sfa to disk ='''+opendialog1.FileName+'''');
ExecSQL;
end;
except
ShowMessage('±?·Yê§°ü');
Exit;
end;
end;
Application.MessageBox('1§?2?ú£?êy?Y±?·Y3é1|','ìáê?',MB_OK + MB_ICONINFORMATION);
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
if OpenDialog1.Execute then
begin
try
adoconnection1.Connected:=false;
adoconnection1.ConnectionString:='Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;Initial Catalog=master;Data Source=FRIEND-YOFZKSCO;'+
'Use Procedure for Prepare=1;Auto Translate=True;Packet Size=4096;Workstation ID=FRIEND-YOFZKSCO;Use Encryption for Data=False;Tag with column collation when possible=False';
adoconnection1.Connected:=true;
with adoQuery1 do
begin
Close;
SQL.Clear;
SQL.Add('Restore DataBase sfa from disk ='''+opendialog1.FileName+'''');
ExecSQL;
end;
except
ShowMessage('???′ê§°ü');
Exit;
end;
end;
Application.MessageBox('1§?2?ú£?êy?Y???′3é1|','ìáê?',MB_OK + MB_ICONINFORMATION);
end;Top
2 楼fhuibo(永远深爱一个叫“莎”的好女孩儿)回复于 2003-12-03 09:03:35 得分 20
with query do
begin
close;
sql.clear;
sql.add('backup database 数据库 to disk = ' + edit1.text);
try
execsql;
except
showmessage('error');
end;
end;
with query do
begin
close;
sql.clear;
sql.add('restore database 数据库 to disk = ' + edit1.text+'with replace');
try
execsql;
except
showmessage('error');
end;
end;Top
3 楼codehunter008(马里奥)回复于 2003-12-03 09:16:11 得分 10
恢复数据库用这个SQL语句:
BACKUP DATABASE { database_name | @database_name_var }
< file_or_filegroup > [ ,...n ]
TO < backup_device > [ ,...n ]
恢复数据库用
RESTORE DATABASE { database_name | @database_name_var }
[ FROM < backup_device > [ ,...n ] ]
至于第二个问题,你的SQL SERVER是在别的机器,还是在本机上?Top
4 楼danielrong(星浪子)回复于 2003-12-03 09:37:48 得分 0
我的SQL SERVER在本地机子上,写的程序在有DELPHI的环境下可以运行,
但是打成包以后,去一个没有DELPHI环境的系统运行则不行,那个系统下有本地的SQL SERVER,
开发系统和测试系统都是WIN2000SERVER
Top
5 楼Seaman_Wang(75级野蛮人)回复于 2003-12-03 09:45:54 得分 0
--〉我的SQL SERVER在本地机子上,写的程序在有DELPHI的环境下可以运行,
但是打成包以后,去一个没有DELPHI环境的系统运行则不行,那个系统下有本地的SQL SERVER,
开发系统和测试系统都是WIN2000SERVER
你的系统是 C/S ,还是 Midas? 数据库连接用的BDE 还是 ADO 还是 ODBC?
Top
6 楼xiaoqiang123(xiaoqiang)回复于 2003-12-03 09:59:26 得分 0
打包时要把所用的DLL,第三方控件,数据库引擎等打包的Top
7 楼danielrong(星浪子)回复于 2003-12-03 10:06:44 得分 0
我的系统是MIS系统,数据库连接用的是BDE
打包的时候,我把所有和delphi有关的.dll文件都打进去了。还是不行
Top
8 楼Seaman_Wang(75级野蛮人)回复于 2003-12-03 10:31:07 得分 0
你在客户机的控制面板中看一下有没有 BDE ,以及BDE配置是否正确。如果没有那是你的安装包做的不对Top
9 楼danielrong(星浪子)回复于 2003-12-03 12:04:36 得分 0
procedure TForm1.Button1Click(Sender: TObject);
begin
if self.OpenDialog1.Execute then
begin
self.Query1.Close;
self.Query1.SQL.Clear;
self.Query1.SQL.Add('backup database liangyou to disk ='+''''+self.OpenDialog1.FileName+'''');
try
self.Query1.ExecSQL;
except
showmessage('error');
end;
end;
end;
//恢复
procedure TForm1.Button2Click(Sender: TObject);
begin
if self.OpenDialog1.Execute then
begin
self.Query1.Close;
self.Query1.SQL.Clear;
self.Query1.SQL.Add('restore database liangyou from disk ='+''''+self.OpenDialog1.FileName+'''');
if application.MessageBox('您确定覆盖数据库文件?','信息提示',mb_yesno)=mryes then
begin
try
self.Query1.ExecSQL;
except
showmessage('error');
end;
end;
end;
end;
procedure TForm1.Button3Click(Sender: TObject);
begin
self.Query1.Close;
self.Query1.SQL.Clear;
self.Query1.SQL.Add('drop database liangyou');
try
self.Query1.ExecSQL;
except
showmessage('error');
end;
end;procedure TForm1.Button1Click(Sender: TObject);
begin
if self.OpenDialog1.Execute then
begin
self.Query1.Close;
self.Query1.SQL.Clear;
self.Query1.SQL.Add('backup database liangyou to disk ='+''''+self.OpenDialog1.FileName+'''');
try
self.Query1.ExecSQL;
except
showmessage('error');
end;
end;
end;
//恢复
procedure TForm1.Button2Click(Sender: TObject);
begin
if self.OpenDialog1.Execute then
begin
self.Query1.Close;
self.Query1.SQL.Clear;
self.Query1.SQL.Add('restore database liangyou from disk ='+''''+self.OpenDialog1.FileName+'''');
if application.MessageBox('您确定覆盖数据库文件?','信息提示',mb_yesno)=mryes then
begin
try
self.Query1.ExecSQL;
except
showmessage('error');
end;
end;
end;
end;
procedure TForm1.Button3Click(Sender: TObject);
begin
self.Query1.Close;
self.Query1.SQL.Clear;
self.Query1.SQL.Add('drop database liangyou');
try
self.Query1.ExecSQL;
except
showmessage('error');
end;
end;procedure TForm1.Button1Click(Sender: TObject);
begin
if self.OpenDialog1.Execute then
begin
self.Query1.Close;
self.Query1.SQL.Clear;
self.Query1.SQL.Add('backup database liangyou to disk ='+''''+self.OpenDialog1.FileName+'''');
try
self.Query1.ExecSQL;
except
showmessage('error');
end;
end;
end;
//恢复
procedure TForm1.Button2Click(Sender: TObject);
begin
if self.OpenDialog1.Execute then
begin
self.Query1.Close;
self.Query1.SQL.Clear;
self.Query1.SQL.Add('restore database liangyou from disk ='+''''+self.OpenDialog1.FileName+'''');
if application.MessageBox('您确定覆盖数据库文件?','信息提示',mb_yesno)=mryes then
begin
try
self.Query1.ExecSQL;
except
showmessage('error');
end;
end;
end;
end;
procedure TForm1.Button3Click(Sender: TObject);
begin
self.Query1.Close;
self.Query1.SQL.Clear;
self.Query1.SQL.Add('drop database liangyou');
try
self.Query1.ExecSQL;
except
showmessage('error');
end;
end;Top
10 楼rongchao22(浪子爱丫头)回复于 2003-12-04 10:03:04 得分 10
给分给分Top




