Bonjour à tous,
Je reviens de nouveau vers la communauté pour essayer de m'aider sur un problème que je n'arrive pas à résoudre ... non faute d'avoir parcouru de long en large les différents fils de discussion & FAQ sur les "BLOBS" et "DBMEMO" !!!
J'ai une forme avec des "edits" (no problémo avec ceux-ci ) surtout un "DBMemo"/"DBImage" (en fait plusieurs mais pour l'exposé je me cantonne à un seul)

Quand je veux sauvegarder dans la BD Postgresql (colonnes type : bytea)
je n'arrive pas à relire et je ne peux pas contrôler du même coup la sauvegarde

dbmInfo1 est un DBMemo lié à la colonne "Regles_Info1_Save1"

Code de la Base sous Postgresql :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
 
-- Table: "TRegles"
 
-- DROP TABLE "TRegles";
 
CREATE TABLE "TRegles"
(
  "Regles_ID" serial NOT NULL,
  "Regles_Intitule" character varying(20) NOT NULL,
  "Regles_Libelle" character varying(60),
  "Regles_Data1" integer NOT NULL,
  "Regles_Data2" integer,
  "Regles_Date1" character varying(10),
  "Regles_Date2" character varying(10),
  "Regles_Info1" bytea,
  "Regles_Info1_Save1" bytea,
  "Regles_Info1_Save2" bytea,
  "Regles_Info1_Save3" bytea,
  "Regles_Info1_Save4" bytea,
  "Regles_Info1_Save5" bytea,
  "Regles_Info2" bytea,
  "Regles_Info2_Save1" bytea,
  "Regles_Info2_Save2" bytea,
  "Regles_Info2_Save3" bytea,
  "Regles_Info2_Save4" bytea,
  "Regles_Info2_Save5" bytea,
  CONSTRAINT "pkRegles_ID" PRIMARY KEY ("Regles_ID" )
)
WITH (
  OIDS=FALSE
);
ALTER TABLE "TRegles"
  OWNER TO postgres;
 
-- Index: "idx_Regles"
 
-- DROP INDEX "idx_Regles";
 
CREATE UNIQUE INDEX "idx_Regles"
  ON "TRegles"
  USING btree
  ("Regles_Intitule" COLLATE pg_catalog."default" );
le code pour la sauvegarde :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
 
 var AMemStream : TMemoryStream;
 
    with dtmMain,sqlqRegles do begin
 
      ParamByName('peReglInfo1').AsBlob := AnsiString(mRegles_Info1.Lines);
      ParamByName('peReglInfo2').AsBlob := AnsiString(mRegles_Info2.Lines);
 
      AMemStream:= tMemoryStream.Create;
      try
        dbmInfo1.Lines.SaveToStream(AMemStream);
        AMemStream.Seek(0, soFromBeginning);
        ParamByName('peRegles_Info1_Save1').LoadFromStream(AMemStream, ftMemo);
 
        ExecSQL;
      finally
        AMemStream.free;
      end;
end;
le code de relecture :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
 
  with dtmMain.sqlqRegles, frm1Regle do
  begin
    mRegles_Info1.Text    := FieldByName('Regles_Info1').AsString;
    mRegles_Info2.Text    := FieldByName('Regles_Info2').AsString;
 
    dbmInfo1.Text := FieldByName('Regles_Info1_Save1').AsString;
  end;
voilà quelques jours où je tourne en rond sans échappatoire j'espère trouver réponse et / ou conseil pour résoudre mon problème

En remerciant par avance.

Daniel