From eca4b038bea4f9a9623cf609bc81213b409f62d8 Mon Sep 17 00:00:00 2001 From: yamat0jp Date: Wed, 29 Jan 2020 22:35:56 +0900 Subject: [PATCH] =?utf8?q?MySQL=E3=81=A7=E4=B8=8D=E5=AE=89=E5=AE=9A?= =?utf8?q?=E3=81=AA=E3=81=8C=E3=82=89=E7=94=BB=E5=83=8F=E3=82=92=E6=89=B1?= =?utf8?q?=E3=81=86=E3=81=93=E3=81=A8=E3=81=AB=E6=88=90=E5=8A=9F=E3=81=97?= =?utf8?q?=E3=81=BE=E3=81=97=E3=81=9F=E3=80=82=20Firebird=E3=81=A7?= =?utf8?q?=E3=81=AFMax()=E9=96=A2=E6=95=B0=E3=81=8C=E5=88=A9=E7=94=A8?= =?utf8?q?=E3=81=A7=E3=81=8D=E3=81=AA=E3=81=84=E3=81=AE=E3=81=A7=E3=81=A0?= =?utf8?q?=E3=82=81=E3=81=A7=E3=81=97=E3=81=9F=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- WebModuleUnit1.dfm | 2 +- tool/Unit2.dfm | 5 +++-- tool/Unit2.pas | 36 +++++++++++++++++++++++------------- 3 files changed, 27 insertions(+), 16 deletions(-) diff --git a/WebModuleUnit1.dfm b/WebModuleUnit1.dfm index 99d0a1d..6396ee9 100644 --- a/WebModuleUnit1.dfm +++ b/WebModuleUnit1.dfm @@ -1759,7 +1759,7 @@ object WebModule1: TWebModule1 end object FDConnection1: TFDConnection Params.Strings = ( - 'ConnectionDef=first_sql') + 'ConnectionDef=test_server') Left = 632 Top = 56 end diff --git a/tool/Unit2.dfm b/tool/Unit2.dfm index 3a22d8e..a83f648 100644 --- a/tool/Unit2.dfm +++ b/tool/Unit2.dfm @@ -65,6 +65,7 @@ object Form1: TForm1 Height = 25 Caption = 'Button2' TabOrder = 1 + OnClick = Button2Click end object Button3: TButton Left = 206 @@ -288,8 +289,8 @@ object Form1: TForm1 CachedUpdates = True Connection = FDConnection1 SQL.Strings = ( - 'use kainushi;' - 'create table images(id int primary key,' + 'create table if not exists' + ' kainushi.images(id int primary key,' ' name varchar(30), source mediumblob);') Left = 440 Top = 112 diff --git a/tool/Unit2.pas b/tool/Unit2.pas index c32e667..4c1364c 100644 --- a/tool/Unit2.pas +++ b/tool/Unit2.pas @@ -13,10 +13,10 @@ uses FireDAC.Comp.DataSet, FireDAC.Comp.Client, System.Rtti, System.Bindings.Outputs, Vcl.Bind.Editors, Data.Bind.EngExt, Vcl.Bind.DBEngExt, Data.Bind.Components, Data.Bind.DBScope, - FireDAC.VCLUI.Wait, FireDAC.Comp.UI, Vcl.DBCtrls, Jpeg, Vcl.Grids, + FireDAC.VCLUI.Wait, FireDAC.Comp.UI, Vcl.DBCtrls, Vcl.Grids, Vcl.DBGrids, FireDAC.Phys.IB, FireDAC.Phys.IBDef, FireDAC.Phys.FB, FireDAC.Phys.FBDef, - Vcl.ComCtrls, Vcl.Buttons; + Vcl.ComCtrls, Vcl.Buttons, FireDAC.Stan.StorageBin, FireDAC.Stan.StorageXML; type TForm1 = class(TForm) @@ -81,6 +81,7 @@ type State: TDragState; var Accept: Boolean); procedure ListBox1EndDrag(Sender, Target: TObject; X, Y: Integer); procedure ListBox1StartDrag(Sender: TObject; var DragObject: TDragObject); + procedure Button2Click(Sender: TObject); private { Private éŒ¾ } item: Integer; @@ -96,32 +97,46 @@ var implementation -uses System.NetEncoding, IdHashSHA, IdHashMessageDigest; +uses System.NetEncoding, IdHashSHA, IdHashMessageDigest, Jpeg; {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); var i: Integer; - t: TStream; + t, t2: TStream; + jpg: TJpegImage; begin with FDTable1 do begin + t2 := TMemoryStream.Create; + jpg := TJpegImage.Create; for i := 1 to 10 do begin t := TResourceStream.Create(HInstance, 'Resource_' + i.ToString, RT_RCDATA); + jpg.LoadFromStream(t); AppendRecord([i, Format('slide%d.jpg', [i])]); Edit; - FDTable1SOURCE.LoadFromStream(t); + t2:=FDTable1.CreateBlobStream(FDTable1.FieldByName('source'),bmWrite); + jpg.SaveToStream(t2); Post; t.Free; + t2.Free; end; + t2.Free; + jpg.Free; ApplyUpdates; CommitUpdates; end; end; +procedure TForm1.Button2Click(Sender: TObject); +begin + FDQuery1.ExecSQL('drop table kainushi.images;'); + FDQuery1.ExecSQL; +end; + procedure TForm1.Button3Click(Sender: TObject); var s: TStream; @@ -139,9 +154,8 @@ procedure TForm1.Button4Click(Sender: TObject); begin with FDTable1 do begin - repeat + while not((Bof = true) and (Eof = true)) do Delete; - until (Bof = true) and (Eof = true); ApplyUpdates; Reconcile; CommitUpdates; @@ -234,12 +248,8 @@ end; procedure TForm1.FormCreate(Sender: TObject); begin - if FDTable1.Exists = false then - begin - FDTable1.Close; - FDQuery1.ExecSQL; - FDTable1.Open; - end; + FDQuery1.ExecSQL; + FDTable1.Open; if FDTable2.Exists = false then FDTable2.CreateTable; FDTable2.Open; -- 2.11.0