Entwickler-Ecke

Datenbanken - Bild aus Datenbank in DBImage darstellen


aba2si - Do 17.07.08 08:57
Titel: Bild aus Datenbank in DBImage darstellen
Hallo zusammen,

ich habe eine Access-Datenbank mit verschiedenen Feldern. Die Kommunikation funktioniert super.
Mein Problem ist nun, das ich ein Feld als Hyperlink deklariert haben, und dort einen Link auf eine .jpg-Datei. In meinem Delphiprogramm habe ich ein DBImage genommen und mit diesem Feld verknüpft. Wenn ich nun das Programm ausführe, bekomme ich die Fehlermeldung "Bitmap ist ungültig". Wenn ich den Link direkt in der Datenbank auswähle, funktionietr er.

Kann mir jemand sagen, was ich falsch mache ???

Danke für Eure Hilfe

Gruß Andy


Klabautermann - Do 17.07.08 19:45

Hallo,

ein DBImage zeigt Bilder an, die als solche in der Tabelle gespeichert sind. Das ist bei dir nicht der Fall, du speicherst nicht das Bild sondern nur dessen Adresse. Ich sehe da zwei gangbare Möglichkeiten für dich:

  1. Du verwendest ein normales tImage, lädst im AfterScroll-Event das Bild aus dem Internet und zeigst es dann im tImage an.

    Nachteile:
    • Ständiger Netzzugang nötig.
    • Das Anzeigen dauern mindestens so lange wie das herunterladen des Bildes aus dem Internet. Bei größeren Bilder und/oder schlechteren Leitungen kann das mehrere Sekunden brauchen.
    • Verschwindet das Bild im Internet (Server down usw.) kannst du es auch im Programm nicht mehr anzeigen.
    • Du musst beim Scrollen verhindern, das das Nachladen des Bildes das Scrollen verlangsamt. Wenn du 5 Datensätze weiter Scrollen willst, dann sollten nicht 5 Bilder aus dem Netz geholt werden müssen.

  2. Du lädst das Bild beim anlegen des Datensatzes aus dem Internet und speicherst es in der Tabelle.
    Nachteile:
    • Die Datenbank kann durch viele Bilder sehr groß werden. Eventuell wird Access hierdurch ein wenig überfordert (?)
    • Wenn ein Bild im Internet geändert wird, hast du noch immer die alte Variante in der Datenbank.


Gruß
Klabautermann