📄 main.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 + -