LabVIEWForum.de - Variant aus Datenbank --> Datentyp

LabVIEWForum.de

Normale Version: Variant aus Datenbank --> Datentyp
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo,

ich habe folgendes Problem. Ich schicke Daten über ein Tool an die Datenbank, da ich nicht weiß welcher Datentyp das ist schicke ich sie als Variant an die Datenbank.
Ich will die Daten jetzt aber wieder auslesen, und das geht auch ohne Probleme, leider kann ich jetzt nicht mehr herausfinden welchen Datentyp die Daten haben.

Ich muss wissen was es ist (String, Double, Waveform, Audiosignal) es soll total egal sein was ich in dem Variant habe, ich muss nur nachher wieder erfahren können was es war. Der Datenbanktyp der Spalte hilft mir auch nicht, der steht auf Binär aber das kann ja alles sein.

Ich bekomme das einfach nicht raus, VariantType.lvlib:GetTypeInfo.vi habe ich schon probiert, da kommt aber immer 'External Data' raus.

Ich hoffe das mir jemand helfen kann. Bei Fragen dazu einfach nochmal nachfragen.
Daten binär, ohne Identifikationsmerkmal in eine Datenbank abzulegen klingt nach einem schlechten Plan... Du solltest vielleicht das Konzept nochmal überdenken.

Wie auch immer, die OpenG LabVIEW Data Palette (installierbar über VI Package Manager) bringt einige Funktionen mit, die dir hierbei helfen könnten. Zum Beispiel kann die Funktion Get TDEnum from Data den Datentyp zurück liefern (enum), wobei alle Basistypen differenziert werden. Etwas komplizierter ist das Ganze mit Typen wie Clustern und Arrays. Cluster werden pauschal als Cluster identifiziert, genauso wie Arrays als Array, unabhängig vom enthaltenen Datentyp...
Alternativ oder zusätzlich kannst du mit Variant Attributen arbeiten.
Hallo,

ja ich habe mir das auch nochmal überlegt, habe nun einfach den Datentyp abgespeichert um ihn dann nachher einfach wieder auszulesen.

Ich dachte es wäre irgendwie möglich aus dem Variant den Datentyp zu lesen, aber das ist ja leider nicht möglich.
(14.05.2014 12:29 )Anna1988 schrieb: [ -> ]Hallo,

ja ich habe mir das auch nochmal überlegt, habe nun einfach den Datentyp abgespeichert um ihn dann nachher einfach wieder auszulesen.

Ich dachte es wäre irgendwie möglich aus dem Variant den Datentyp zu lesen, aber das ist ja leider nicht möglich.

Ist es eigentlich schon mit den von LogMan erwähnten Tools, oder in neueren LabVIEW Versionen alternativ den Tools in vi.lib/utility/GetType.llb.

Nur hilft Dir das eventuel noch nicht so viel, da beim Abspeichern der Daten eine implizite Konvertierung Deiner Daten stattfindet die abhängig ist von dem Datentyp in der Datenbank für die entsprechende Kolonne und das kann etwas ganz anderes sein dann was Du ursprünglich in die Variante gestopft hast. Beim Zurücklesen konvertiert LabVIEW die Daten aus der Datenbank in den am direktesten kompatiblen Datentyp und kann es dann sein dass Du zwar eine Fliesskommazahl in die Datenbank geschrieben hast, aber weil die Datenbankkolonne als String definiert ist, kommt halt dann auch ein LabVIEW String zurück.
Referenz-URLs