Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Bild aus Datenbank laden. (https://www.delphipraxis.net/145150-bild-aus-datenbank-laden.html)

1carter1 24. Dez 2009 15:29

Datenbank: Mysql • Version: 5 • Zugriff über: C-Api

Bild aus Datenbank laden.
 
Hi,

Ich greife mit der C-Api auf meine Mysql 5.x datenbank zu und habe dort nun in der tabelle img ein bild gespeichert (mit diesem Blob kram :P)
Nun wollte ich fragen, wie ich das bild mit delphi aus der Datenbank laden und anzeigen lassen kann.
(Ich nutze Delphi 7 Enterprise)

Freue mich auf Hilfe,
Fröhliche Weihnachten,
Danke Schonmal,

MfG carter

skh 25. Dez 2009 15:28

Re: Bild aus Datenbank laden.
 
Hallo,
probiers mal in der Art
Image1.Picture.LoadFromFile(Table4.FieldByName('Bi ld').Value);


Gruss
KH

1carter1 25. Dez 2009 18:02

Re: Bild aus Datenbank laden.
 
Hi,

erstmal danke für deine antwort aber irgendwie verstehe ich den code nicht, funktioniert der auch mit der c-api und was muss ich einsetzen?
Die struktur ist bei mir wie folg:

db name:

carter_main

tabellen name:

daten

spalten name in der die bilder sind: img

müsste der code dann so aussehen?:

Image1.Picture.LoadFromFile(daten.FieldByName('img ').Value);

Und welche komponente muss ich nutzen? DB image?

Wenn das stimmt hab ich noch das prob, dass ich ja nicht nur ein bild hab sondern mehrere, ich will ein spezielles bild mit nem query auslesen z.B. mit

[...] WHERE ID = ' +Edit1.Text;
mfg carTer


//Edit habe den Code getestet, funktioniert nicht :/

fkerber 25. Dez 2009 18:53

Re: Bild aus Datenbank laden.
 
Hi!

Der Code oben dient imho dazu ein Bild zu laden, wenn in der Datenbank der Pfad dazu abgelegt ist, nicht, wenn das Bild direkt in der DB steht.

Gibt es nicht sowas die DB-Image?


Grüße, Frederic

1carter1 25. Dez 2009 19:17

Re: Bild aus Datenbank laden.
 
ja, aber ich hatte ja geschrieben dass er direkt in der db ist, und ja es gibt dbimage aber leider weiß ich nicht wie man damit umgeht :(

fkerber 25. Dez 2009 19:58

Re: Bild aus Datenbank laden.
 
Hi!

Hast du mal die Suche benutzt? Es gibt so viele Threads mit DBImage etc.
Auch die Grundlagen-Tutorials zu Datenbanken von www.delphi-treff.de solltest du dir vllt. mal anschauen.


Grüße, Frederic

1carter1 25. Dez 2009 20:26

Re: Bild aus Datenbank laden.
 
ja habe ich, aber die nutzen dbimage nicht um die daten aus der sql db zu holen sondern woanders usw

fkerber 25. Dez 2009 20:30

Re: Bild aus Datenbank laden.
 
Hi!

Es gibt keine SQL-Datenbank, sondern SQL ist eine Sprache, um mit Datenbanken zu "reden" - also Anfragen zu stellen bzw. Befehle abzusetzen.

Wie sieht denn deine Situation nun konkret aus?
Kommst du schon an Daten aus der Datenbank (mal von dem Bild abgesehen, also z.B. Text o.ä.)?
Wenn ja, wie sieht dein Code dafür aus?


Grüße, Frederic

1carter1 25. Dez 2009 21:06

Re: Bild aus Datenbank laden.
 
ja ich komme an alle daten, veränder auch die daten usw, ich programmiere recht viel mit php daher sind mir die basic querys wohl bekannt.
hier mal nen code schnippsel:

Zitat:

Con := mysql_init(nil);
if Assigned(Con) then
try
if Assigned(mysql_real_connect(Con, host, user, pass, db, 3306, nil, 0)) then
begin
query := 'UPDATE carter_main.daten SET status = "Ausgeloggt" WHERE uniqueid = '+uniqueid.Text;
mysql_real_query(Con,PChar(query), Length(query));
end
finally
mysql_close(Con);
end;

und dass ich sql datenbank sage hat seine gründe, in diversen foren wird dauernd nachgefragt mit welcher db ich arbeite und daher habe ich mir das angewöhnt, jedesmal wenn ich von ner db rede den zusatz sql davorzusetzen, damit es auch jeder sieht ;)


Mfg carTer

Alter Mann 25. Dez 2009 22:00

Re: Bild aus Datenbank laden.
 
Hi,

suche mal nach Blobfield und
dir werden Informationen zu Teil, die weit über das hinausgehen was du brauchst.

In Delphi könnte das ganze so aussehen:
Delphi-Quellcode:
procedure  Txxxxx.ReadImage;
var
  BS : TStream;
  MS : TMemoryStream;
begin
  BS := Query.CreateBlobStream(Query.FieldByName('Thumb'), bmRead);
  BS.Seek(0, soFromBeginning);
  MS := TMemoryStream.Create;
  MS.CopyFrom(BS, BS.Size);
  MS.Position := 0;
  FImage.LoadFromStream(MS);
  MS.Free;
  BS.Free;
end;
Viel Spaß

PS Falls du kein FImage hast, oder in deiner DB es kein Feld 'Thumb' gibt; pass die
Werte entsprechend deinem Gusto an.


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:27 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz