这是数据备份还原的过程,你根据需要改一下: procedure CopyDataBase(var Bool: Boolean; str, path, server, passw: string); var Conn:TADOConnection; query:TADOQuery; str1:string; begin Conn:=TADOConnection.Create(self); query:=TADOQuery.create(self); str1:='Provider=SQLOLEDB.1;'; str1:=str1+'PassWord='+passw+';'+'Persist Security Info=True;User ID=sa;'; str1:=str1+'Data Source='+server; conn.Connectionstring:=str1; conn.LoginPrompt:=false; query.Connection:=conn; if not Bool then begin try with query do begin Close; Sql.Clear; sql.text:=Format('BACKUP DATABASE skjc TO DISK=''%s'' WITH INIT',[path]);//将数据库备份到用户自选的目录去。 execsql; //还原数据库 Close; Sql.Clear; sql.add('restore database skjc from disk='''+trim(path)+''''); execsql; close; end; except on exception do if Conn.InTransaction then Conn.RollbackTrans; end; end else begin try with query do begin close; sql.Clear; sql.Add('select ''存在'' where exists (select * from sysdatabases where name =''skjc'')'); open; if recordcount=0 then begin //创建数据库 close; sql.clear; sql.add('create database skjc'); execsql; end; //还原数据库 Close; Sql.Clear; sql.add('restore database skjc from disk='''+trim(path)+''''); execsql; close; end; except on exception do if Conn.InTransaction then Conn.RollbackTrans; end; end; conn.Free; query.Free; end; 其中SKJC为数据库名
procedure CopyDataBase(var Bool: Boolean; str, path, server,
passw: string);
var
Conn:TADOConnection;
query:TADOQuery;
str1:string;
begin
Conn:=TADOConnection.Create(self);
query:=TADOQuery.create(self);
str1:='Provider=SQLOLEDB.1;';
str1:=str1+'PassWord='+passw+';'+'Persist Security Info=True;User ID=sa;';
str1:=str1+'Data Source='+server;
conn.Connectionstring:=str1;
conn.LoginPrompt:=false;
query.Connection:=conn;
if not Bool then begin
try
with query do
begin
Close;
Sql.Clear;
sql.text:=Format('BACKUP DATABASE skjc TO DISK=''%s'' WITH INIT',[path]);//将数据库备份到用户自选的目录去。
execsql;
//还原数据库
Close;
Sql.Clear;
sql.add('restore database skjc from disk='''+trim(path)+'''');
execsql;
close;
end;
except
on exception do
if Conn.InTransaction then
Conn.RollbackTrans;
end;
end
else
begin
try
with query do
begin
close;
sql.Clear;
sql.Add('select ''存在'' where exists (select * from sysdatabases where name =''skjc'')');
open;
if recordcount=0 then begin
//创建数据库
close;
sql.clear;
sql.add('create database skjc');
execsql;
end; //还原数据库
Close;
Sql.Clear;
sql.add('restore database skjc from disk='''+trim(path)+'''');
execsql;
close;
end;
except
on exception do
if Conn.InTransaction then
Conn.RollbackTrans;
end;
end;
conn.Free;
query.Free;
end;
其中SKJC为数据库名