📄 umain.~pas
字号:
unit uMain;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, uMysqlHelpers, uMysqlClient, uMysqlStreams,db,
ADODB;
type
TfrmMain = class(TForm)
btnLoad: TButton;
btnSave: TButton;
btnCreate: TButton;
edInFileName: TEdit;
Label1: TLabel;
Label2: TLabel;
btnInSelect: TButton;
edOutFileName: TEdit;
btnOutSelect: TButton;
dlgOutFile: TSaveDialog;
dlgInFile: TOpenDialog;
chkOverwrite: TCheckBox;
Button1: TButton;
Edit1: TEdit;
ADOConnection1: TADOConnection;
Button2: TButton;
ADOCommand1: TADOCommand;
Edit2: TEdit;
procedure btnLoadClick(Sender: TObject);
procedure btnSaveClick(Sender: TObject);
procedure btnCreateClick(Sender: TObject);
procedure btnInSelectClick(Sender: TObject);
procedure btnOutSelectClick(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
frmMain: TfrmMain;
implementation
{$R *.dfm}
procedure TfrmMain.btnCreateClick(Sender: TObject);
var
_c: TMysqlClient;
_ex: boolean;
begin
{ create a client }
_c:= TMysqlClient.create;
try
{ connect to the server }
_c.connect('192.168.0.2','dedes', '123', 'test');
if _c.Connected then
begin
{ insert a new row }
_c.query('create table mytable(img mediumblob)', true, _ex);
{ check the success }
if _ex then
ShowMessage('Table succesfully created.')
else
ShowMessage('Failed to create the table: ' + _c.LastError);
_c.close;
end;
finally
{ clean-up }
_c.free;
end;
end;
procedure TfrmMain.btnLoadClick(Sender: TObject);
var
_c: TMysqlClient;
_ex: boolean;
fs:string;
i:integer;
dt:tdatetime;
begin
if (trim(edInFileName.Text) = '') then
begin
ShowMessage('please select an input file');
exit;
end;
{ create a client }
fs:=format('insert into mytable values ('+inttostr(i)+',"%s")',[FileToMysqlString(edInFileName.Text)]);
_c:= TMysqlClient.create;
try
{ connect to the server }
_c.connect('192.168.0.2','dedes', '123', 'test');
// _c.connect('localhost','root', '', 'test');
dt:=now;
if _c.Connected then
begin
{ insert a new row }
_c.query('Set AUTOCOMMIT = 0', true, _ex);
for i:=1 to 500 do
_c.query(fs, true, _ex);
{ check the success }
dt:=now-dt;
edit1.Text:=DateTimeToStr(dt);
if _ex then
ShowMessage('File succesfully inserted.')
else
ShowMessage('Failed to insert into the table: ' + _c.LastError);
_c.close;
end;
finally
{ clean-up }
_c.free;
end;
end;
procedure TfrmMain.btnSaveClick(Sender: TObject);
var
_c: TMysqlClient;
_r: TMysqlResult;
_ex: boolean;
begin
if (trim(edOutFileName.Text) = '') then
begin
ShowMessage('please select an output file');
exit;
end;
{ create a client }
_c:= TMysqlClient.create;
try
{ connect to the server }
_c.connect('192.168.0.2','dedes', '123', 'test');
// _c.connect('localhost','root', '', 'test');
if _c.Connected then
begin
{ get a result set }
_r:= _c.query('select img from mytable', true, _ex);
if (_r <> nil) then
try
{ if we have anything }
if (_r.RowsCount > 0) then
begin
{ make sure we know the fields sizes }
_r.HasLengths:= true;
{ save the field to the file }
MysqlStringToFile(_r.FieldValue(0), _r.FieldLenght(0), edOutFileName.Text, chkOverwrite.Checked);
end
else
ShowMessage('The select result is empty');
finally
_r.Free;
end
else
ShowMessage('Failed to select from the table: ' + _c.LastError);
_c.close;
end;
finally
{ clean-up }
_c.free;
end;
end;
procedure TfrmMain.btnInSelectClick(Sender: TObject);
begin
if dlgInFile.Execute then
edInFileName.Text:= dlgInFile.FileName;
end;
procedure TfrmMain.btnOutSelectClick(Sender: TObject);
begin
if dlgOutFile.Execute then
edOutFileName.Text:= dlgOutFile.FileName;
end;
procedure TfrmMain.Button1Click(Sender: TObject);
var
_c: TMysqlClient;
_r: TMysqlResult;
_ex: boolean;
i:integer;
dt:tdatetime;
fs:string;
begin
dt:=now;
{if (trim(edInFileName.Text) = '') then
begin
ShowMessage('please select an input file');
exit;
end;
{ create a client }
_c:= TMysqlClient.create;
try
{ connect to the server }
_c.connect('192.168.0.2','dedes', '123', 'test');
// _c.connect('localhost','root', '', 'test');
if _c.Connected then
begin
{ insert a new row }
//fs:=format('insert into mytable values ('+inttostr(i)+',"%s")',[FileToMysqlString(edInFileName.Text)]);
{for i:=0 to 1000 do
_c.query(fs, true, _ex); //0:48
{ check the success }
//for i:=0 to 1000 do
_c.query('insert into mytablea select null,'+inttostr(i)+'', true, _ex); //1:35}
dt:=now-dt;
edit1.Text:=DateTimeToStr(dt);
if _ex then
ShowMessage('File succesfully inserted.')
else
ShowMessage('Failed to insert into the table: ' + _c.LastError);
_r:= _c.query('select last_insert_id()', true, _ex);
if (_r <> nil) then
try
{ if we have anything }
if (_r.RowsCount > 0) then
begin
{ make sure we know the fields sizes }
_r.HasLengths:= true;
{ save the field to the file }
edit2.Text:= _r.FieldValue(0);
end
else
ShowMessage('The select result is empty');
finally
_r.Free;
end;
_c.close;
end;
finally
{ clean-up }
_c.free;
end;
end;
procedure TfrmMain.Button2Click(Sender: TObject);
var
dt:tdatetime;
i:integer;
begin
//ADOConnection1.ConnectionString:= 'driver=SQL server;server=BS-SERVER;uid=SA;pwd=DIRBS1222;database=SDYTEST;'; //ado+mysql 7:00
ADOConnection1.Open;
dt:=now;
ADOCommand1.CommandText:='insert into mytablea values ('+inttostr(i)+')';
for i:=1 to 10000 do ADOCommand1.Execute;
dt:=now-dt;
edit1.Text:=DateTimeToStr(dt);
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -