Manipulations Couple DBMemo/(Blob Postgresql)
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 :mouarf: ) 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 :bug:
dbmInfo1 est un DBMemo lié à la colonne "Regles_Info1_Save1"
Code de la Base sous Postgresql :
Code:
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:
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:
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 :marteau: j'espère trouver réponse et / ou conseil pour résoudre mon problème
En remerciant par avance.
Daniel