我是delphi新手刚接到一个新任务:备份和还原数据库表。
要求如下;
    1.我做的系统要能和客户的系统想结合,也就是客户的系统装上我做的东西只要少加修改就可以用.(也即我做的系统要可以备份和恢复不同类型的数据库的表)(求设计方案)
  2.如果表中有系统递增的字段不要导入此字段,导入表时不要到入视图(求sql怎么写)  
希望各位前辈帮忙指导一下,不胜感谢!!

解决方案 »

  1.   

    unit UDataBR;interfaceuses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, StdCtrls, DB, ADODB;type
      TFDataBR = class(TForm)
        Edit1: TEdit;
        Edit2: TEdit;
        Button1: TButton;
        Button2: TButton;
        Label1: TLabel;
        Label2: TLabel;
        Button3: TButton;
        Button4: TButton;
        Button5: TButton;
        SaveDialog1: TSaveDialog;
        OpenDialog1: TOpenDialog;
        ADOQuery1: TADOQuery;
        procedure Button5Click(Sender: TObject);
        procedure Button1Click(Sender: TObject);
        procedure Button4Click(Sender: TObject);
        procedure Button2Click(Sender: TObject);
        procedure Button3Click(Sender: TObject);
      private
        { Private declarations }
      public
        { Public declarations }
      save,open : String;
      end;var
      FDataBR: TFDataBR;implementation{$R *.dfm}procedure TFDataBR.Button5Click(Sender: TObject);
    begin
      Close;
    end;procedure TFDataBR.Button1Click(Sender: TObject);
    begin
      with saveDialog1 do
      begin
        DefaultExt := 'bak';
        Filter := '*.bak';
        Execute;
        save:= FileName;
        edit1.Text := FileName;
      end;
    end;procedure TFDataBR.Button4Click(Sender: TObject);
    begin
    if save ='' then
    begin
      showmessage('请您先选择路径!');
      exit;
    end;
    try
     with ADOQuery1 do
     begin
       self.Caption := '悲愤中,请梢后...';
       sql.Clear;
       sql.Add(format('BACKUP DATABASE PeoMan TO DISK = ''%s''',[save]));
       execsql;
       showmessage('恭喜!  数据库备份成功!');
     end;
     except
       showmessage('对不起,出现意外,备份失败!');
     end;
    end;procedure TFDataBR.Button2Click(Sender: TObject);
    begin
      with OpenDialog1 do
      begin DefaultExt:='bak';
        Filter := '*.bak';
        Execute;
        edit2.Text := FileName;
        open := filename;
      end;
    end;procedure TFDataBR.Button3Click(Sender: TObject);
    begin
      ADOQuery1.Close;
      ADOQuery1.ConnectionString := 'Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;Initial Catalog=master';
      try
        with ADOQuery1 do
        begin
          Close;
          SQL.Clear;
          SQL.Add('restore database PeoMan from disk = ''c:\back1.bak''');
          ExecSQL;
        end;
        ShowMessage('还原成功。');
      except
        On e: exception do
        ShowMessage('还原失败。');
      end
    end;end.