我用以下程序,可以实现在本机上进行数据库备份,但是从某一个客户端备份数据库时就出错,why?怎么解决呢,急,在线等var sd:TSaveDialog;
Adocommand:tAdocommand;
s_database1,s_backuppath1,s_backupfilename1:string;
s_server1:string;
begin
sd:=TSaveDialog.Create(self);
Adocommand:=TAdocommand.Create(self);
sd.InitialDir:='c:\';
sd.FileName:=datetostr(now);
if sd.Execute then
begin
// showmessage(sd.FileName);
// sd.:='aa' ;
s_database1:='WJKSJK';
s_server1:='jacky';
s_backupfilename1:=sd.FileName;
Adocommand.ConnectionString :='Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;Initial Catalog='+s_database1+';Data Source='+s_server1;
ADOCommand.CommandText := 'use Master';
ADOCommand.Execute;
adocommand.CommandText := 'execute sp_helpdevice';
adocommand.Execute;
adocommand.CommandText := 'backup database ' + s_database1 + ' to disk=''' +s_backupfilename1 + ''' with init';
//adocommand1.CommandText := 'backup database ' + 'BanShanDB' + ' to disk=''' +'c:\data.bak' + ''' with init';
adocommand.Execute;
adocommand.CommandText := 'Use ' + s_database1;
adocommand.Execute;
application.MessageBox('已经成功备份数据库','数据库备份',MB_OK + MB_ICONINFORMATION);
end;
sd.Free;
adocommand.Free;
Adocommand:tAdocommand;
s_database1,s_backuppath1,s_backupfilename1:string;
s_server1:string;
begin
sd:=TSaveDialog.Create(self);
Adocommand:=TAdocommand.Create(self);
sd.InitialDir:='c:\';
sd.FileName:=datetostr(now);
if sd.Execute then
begin
// showmessage(sd.FileName);
// sd.:='aa' ;
s_database1:='WJKSJK';
s_server1:='jacky';
s_backupfilename1:=sd.FileName;
Adocommand.ConnectionString :='Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;Initial Catalog='+s_database1+';Data Source='+s_server1;
ADOCommand.CommandText := 'use Master';
ADOCommand.Execute;
adocommand.CommandText := 'execute sp_helpdevice';
adocommand.Execute;
adocommand.CommandText := 'backup database ' + s_database1 + ' to disk=''' +s_backupfilename1 + ''' with init';
//adocommand1.CommandText := 'backup database ' + 'BanShanDB' + ' to disk=''' +'c:\data.bak' + ''' with init';
adocommand.Execute;
adocommand.CommandText := 'Use ' + s_database1;
adocommand.Execute;
application.MessageBox('已经成功备份数据库','数据库备份',MB_OK + MB_ICONINFORMATION);
end;
sd.Free;
adocommand.Free;
解决方案 »
- XP上使用SQL SERVER做为数据源,应该安装其哪个版本的程序
- cxgrid的styles的content问题
- 请教内存映射大文件问题
- 求助insert into select 问题
- 自动编号的简单问题
- 为什么从资源文件中读到webbrowser的Mht显示网页源码而不是正常的网页?
- 大虾们,来谈谈密码问题????
- 怎样让StringGrid的行列显示为指定的颜色??
- 我用delphi7写的b/s客户端发布为ActiveX,如何屏蔽用IE打开时总要弹出“安全设置禁止ActiveX”之类的信息?
- <<<<<<大家帮这位MM一下忙吧!!>>>>>>
- 学校要分专业,c++ delphi java哪个有前途?
- 这是一个递归复制文件夹的函数,请帮忙看一下怎么才能知道函数完全执行完了,如果中途停止,应该在哪里写Result:=False,
你用的是否是sql server7.0/2000,如果是的话可以将备份做到job里面
如果是oracle8I/9I,那就容易了,可以直接用exp来完成
有没有办法用程序实现远程备份呢,因为用户提出最好能客户端手工备份
@_@
这里得到的是客户端机器c:\下面的文件,而你的远程备份只能备份到远端服务器的目录
一句類似 xp_cmdshell "net use "
邊接到對方電腦, 大概思路是這樣
如果一定要在客户段备份,可以考虑如下方案:
1、adocommand.CommandText ='backup database ' + s_database1 + ' to disk=''' +SvrPath + ''' with init';将数据备份在数据库服务器上;
2、通过其他方式从服务器上获得该文件到客户端;可以是FTP等方式。
如果需要可以告诉我你的邮箱,我发給你好了
.cn
把控件发给我把,解决就给分