⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.pas

📁 该工具用Delphi7写的
💻 PAS
字号:
unit Main;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, DB, ADODB;

type
  TForm1 = class(TForm)
    Label1: TLabel;
    EServer: TEdit;
    Label2: TLabel;
    EDB: TEdit;
    Label3: TLabel;
    ESelectSQL: TMemo;
    BCheck: TButton;
    Label4: TLabel;
    EInsertSQL: TMemo;
    BCreate: TButton;
    EResultSQL: TMemo;
    BSave: TButton;
    ADOConn: TADOConnection;
    ADOQRY: TADOQuery;
    Label5: TLabel;
    Label6: TLabel;
    EUserName: TEdit;
    EPassword: TEdit;
    SaveDialog: TSaveDialog;
    procedure BCheckClick(Sender: TObject);
    procedure BCreateClick(Sender: TObject);
    procedure BSaveClick(Sender: TObject);
  private
    function ConnectionDB:boolean;
    function CheckSQL:boolean;
    function ReturnStr(fieldstr:TField):string;
    { Private declarations }
  public
    { Public declarations }
  end;
const
  c_NoParaConStr='Provider=SQLOLEDB.1;Persist Security Info=False;User ID=%s;password=%s;Initial Catalog=%s;Data Source=%s';

var
  Form1: TForm1;

implementation

{$R *.dfm}

function TForm1.ConnectionDB:boolean;
var
  s:string;
begin
  result:=false;
  s:=format(c_NoParaConStr,[EUserName.Text,EPassword.Text,EDB.Text,EServer.Text]);
  try
    with ADOConn do
    begin
      Connected:=false;
      ConnectionString:=s;
      LoginPrompt:=false;
      Connected:=true;
    end;
    result:=true;
  except
    
  end;
end;

function TForm1.CheckSQL:boolean;
begin
  if (not ConnectionDB) then
    result:=false
  else
  begin
    try
      with ADOQRY do
      begin
        Close;
        SQL.Clear;
        SQL.Add(ESelectSQL.Text);
        Open;
        result:=true;
      end;
    except
      result:=false;
    end;
  end;
end;

procedure TForm1.BCheckClick(Sender: TObject);
begin
  if (not CheckSQL) then
    ShowMessage('连接失败!')
  else
    Showmessage('测试成功!');
end;

procedure TForm1.BCreateClick(Sender: TObject);
var
  s1:string;
  i:integer;
begin
  EResultSQL.Lines.Clear;
  if CheckSQL then
  begin
    with ADOQRY do
    begin
      Close;
      SQL.Clear;
      SQL.Add(ESelectSQL.Text);
      Open;
      while not eof do
      begin
        s1:=EInsertSQL.Text+' values(';
        for i:=0 to FieldCount-1 do
        begin
          if i=0 then
            s1:=s1+ReturnStr(Fields[i])
          else
            s1:=s1+','+ReturnStr(Fields[i]);
        end;
        EResultSQL.Lines.Add(s1+')');
        //s1+')'+#13;
        next;
      end;
      Close;
    end;
    //EResultSQL.Text:=s;
  end
  else
    ShowMessage('连接失败!');
end;

function TForm1.ReturnStr(fieldstr:TField):string;
begin
  if fieldstr.DataType in [ftString,ftDate,ftTime,ftDateTime,ftBytes,ftVarBytes,ftMemo,ftWideString,ftWord] then
    result:=quotedstr(fieldstr.asstring)
  else
    result:=fieldstr.asstring;
end;

procedure TForm1.BSaveClick(Sender: TObject);
begin
  if SaveDialog.Execute then
  begin
    EResultSQL.Lines.SaveToFile(SaveDialog.FileName+'.sql');
  end;
end;

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -