Printable Version of Topic

Click here to view this topic in its original format

IBB Forum _ ADO-Toolkit _ JPG laden, in DB speichern, lesen und anzeigen lassen?

Posted by: tt-web 10. Jan 2011, 10:19

Hallo,
ich verzweifel gerade etwas an den Möglichkeiten von Labview mit Grafikdateien umzugehen. Ist es mit dem ADO-Toolkit möglich in Labview 2010 eine Bilddatei zu laden, irgendwie umzuwandeln und in einer SQL-Datenbank abzulegen, wieder auslesen, rückwandeln und anzeigen zu lassen? Ich stosse immer wieder auf inkompatible Arrays, Datentypen usw.
Es tauchein in diversen Foren immer wieder Hinweise auf, dass es möglich ist, über eine U8 Hex String irgendwas Umwandlung, aber ganz ehrlich: Ich kann kein Beispiel nachvollziehen, oder auch nur im Ansatz zum Laufen bringen.
Das ADO-Toolkit scheint mir in dieser Hinsicht etwas flexibler zu sein, aber mir fehlen die Ansätze und Erfahrung im Umgang mit solchen nicht ganz trivialen Konvertierungen...

Wäre dankbar über jeden Hinweis, Tipp oder Problemlösung!

Liebe Grüße thomas

Posted by: CB 13. Jan 2011, 16:15

ja, da gibt es was:

dafür braucht man in der Datenbank ein Feld, in dem man einen String ablegen kann. Bei Access wäre das z.B. der Typ "Memo" und da sind wir auch schon beim nächsten Problem: ein Memo-Feld in Access kann nur 64 kB aufnehmen, d.h. man muss den entstehenden String auch noch stückeln.

Im Prinzip nutzt man dafür die beiden Funktion um binärdaten in einen HEX-String umzuwandeln bzw. in einen binär-String zurück zu konvertieren. In den beiden Screenshots ist das dargestellt, aber mit dem Unterschied, dass die Daten keine Bild-Daten sind sondern relativ lange binäre Daten - was aber für die Fragestellung eig. keinen Unterschied macht ...

Speichern in "Häppchen":



Häppchenweise laden und wieder zusammenbauen:


Beim Speichern werden zunächst einmal die Daten (in deinem Fall, halt die Bild-Daten) in einen binären String umgewandelt mit "flatten to string" und anschließend dieser String in Abschnitten (wird mit "String Subset" aufgeteilt) in die DB geschoben. Beim Auslesen wird der zerteilte HEX-String wieder zusammengefügt und anschließend in einen binär-String umgewandelt, der wiederum mit "unflatten from string" in das original-Datum zurück-konvertiert wird.

Ist nicht die eleganteste Methode, funktioniert aber. In dem Fall hab ich mich für eine Access-DB entschieden, weil die einfach am leichtesten zu deployen ist (in Verbindung mit dem ADO-Toolkit ...)

viele Grüße
CB

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)