OSDN Git Service

Postはうまく生きましたが、まだ保持できない問題が続いています
authoryamat0jp <terukohietori@gmail.com>
Wed, 8 Jan 2020 02:24:06 +0000 (11:24 +0900)
committeryamat0jp <terukohietori@gmail.com>
Wed, 8 Jan 2020 02:24:06 +0000 (11:24 +0900)
tool/Unit1.fmx
tool/Unit1.pas

index efd43d2..a17d9a7 100644 (file)
@@ -350,8 +350,8 @@ object Form2: TForm2
       'Password=kainushi'
       'Server=localhost'
       'CharacterSet=utf8'
-      'Database=kainushi'
       'DriverID=MySQL')
+    Connected = True
     Left = 360
     Top = 192
   end
@@ -384,7 +384,7 @@ object Form2: TForm2
   end
   object FDGUIxWaitCursor1: TFDGUIxWaitCursor
     Provider = 'FMX'
-    Left = 408
+    Left = 416
     Top = 224
   end
   object BindSourceDB1: TBindSourceDB
@@ -393,4 +393,14 @@ object Form2: TForm2
     Left = 384
     Top = 288
   end
+  object FDQuery1: TFDQuery
+    Connection = FDConnection1
+    SQL.Strings = (
+      'create database if not exists kainushi;'
+      'use kainushi;'
+      'create table if not exists images(id int primary key,'
+      ' name varchar(10), source mediumblob);')
+    Left = 456
+    Top = 192
+  end
 end
index a5af203..7387f4d 100644 (file)
@@ -36,6 +36,7 @@ type
     FDTable1name: TWideStringField;
     FDTable1source: TBlobField;
     LinkPropertyToFieldBitmap: TLinkPropertyToField;
+    FDQuery1: TFDQuery;
     procedure Button1Click(Sender: TObject);
     procedure FDTable1AfterInsert(DataSet: TDataSet);
     procedure FormCreate(Sender: TObject);
@@ -58,22 +59,27 @@ var
   s: TStream;
   bmp: TBitmapSurface;
   pm: TBitmapCodecSaveParams;
+  img: TBitmap;
 begin
   if OpenDialog1.Execute = true then
   begin
+    if FDTable1.RecordCount = 0 then
+      FDTable1.Append;
     FDTable1.Edit;
     bmp := TBitmapSurface.Create;
+    img := TBitmap.Create;
     try
       s := FDTable1.CreateBlobStream(FDTable1.FieldByName('source'), bmWrite);
-      Image1.Bitmap.LoadFromFile(OpenDialog1.FileName);
-      bmp.Assign(Image1.Bitmap);
+      img.LoadFromFile(OpenDialog1.FileName);
+      bmp.Assign(img);
       pm.Quality := 100;
       TBitmapCodecManager.SaveToStream(s, bmp, '.jpg', @pm);
+      FDTable1.Post;
     finally
       s.Free;
       bmp.Free;
+      img.Free;
     end;
-    FDTable1.Post;
   end;
 end;
 
@@ -90,8 +96,7 @@ end;
 
 procedure TForm2.FormCreate(Sender: TObject);
 begin
-  if FDTable1.Exists = false then
-    FDTable1.CreateTable;
+  FDQuery1.ExecSQL;
   FDTable1.Open;
   FDTable1.Refresh;
 end;