Hallo,
ich habe folgendes Problem, welches mich bald zum Wahnsinn treibt.
Da Delphi 2 als DBImage nur BMP laden kann und der Reportgenerator (QRDesign v1.12b) auch nur BMP
laden kann, habe ich dieses Problem wie folgt umgangen.
Mittels ProcessAufruf wird das Progamm I_VIEW32.EXE (Bildbetrachter - sehr empfehlenswert) aufgerufen,
welches parametergesteuert dann ein JPG Bild aufruft, und dieses ins Clipboard kopiert.
Anschließend wird das Bild aus dem Clipboard der DBVariable(Blob) zugewiesen und in der
DB gespeichert.
Beim Druck wird dann das in der Datenbank befindliche Bild mit dem Reportgenerator ausgedruckt.
So weit so gut, aber es funktioniert manchmal gar nicht, manchmal bestens.
Machmal steht im Feld Blob das Bild des vorherigen Records, manchmal auch gar nichts.
Wertet man den Wert (das Bild) vom Clipboard aus, so beinhaltet es das richtige Bild.
Und irgendwie stehe ich da jetzt am Ende meiner Weisheit.
Def. Datenbank (
IB 5.1)
SQL-Code:
CREATE TABLE S_ART_BILD
(MAND_NR INTEGER NOT NULL,
WAREN_GRP CHAR(9) NOT NULL,
ART_NR CHAR(13) NOT NULL,
GROESS_CD CHAR(3) NOT NULL,
FARB_CD CHAR(3) NOT NULL,
ART_ORIGNR VARCHAR(15),
ARNR_MATCH VARCHAR(13),
BILD BLOB SUB_TYPE 0 SEGMENT SIZE 64, // ebenso versucht mit 256, 512, 640, 1024
PRIMARY KEY (MAND_NR, WAREN_GRP, ART_NR, GROESS_CD, FARB_CD));
Dann der Umwandlungsprozess und Post in der
IB:
Delphi-Quellcode:
ProcessTemp := TProcess.Create(Owner); // Aufruf I_VIEW32 inkl. Pfad, JPG Bildname und Paramter
ProcessTemp.Command := sPfad_PRG + ' ' + sPfad_Bild + ' /resize=(20p,20p) /clipcopy /killmesoftly';
ProcessTemp.ShowWindow := swShowMaximized;
ProcessTemp.Wait := FALSE; // auch mit True probiert
ProcessTemp.Execute;
DBImage.PasteFromClipboard;
DBImage.LoadPicture;
QueryS_Art_Bild.Post;
BDE 4.51 Einstellungen:
Blobs to cache: von 64 bis 65000 alles durchprobiert
Blob size: von 64 bis 1024 alles durchprobiert
1.000 Dank für eine Anregung !
Liebe Grüße
Gerald
[edit=Sharky]SQL- und Delphi-Tags gesetzt. Mfg, Sharky[/edit]