TRUE aus Datenbank (Variant) wird in -1 umgewandelt.
Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!
16.10.2007, 12:30 (Dieser Beitrag wurde zuletzt bearbeitet: 08.12.2007 13:11 von jg.)
Developer Suite Core -> LabVIEW 2015 Prof.
2006
EN
71083
Deutschland
TRUE aus Datenbank (Variant) wird in -1 umgewandelt.
Hallo,
ich hole aus meiner Datenbank die unterschiedlichsten Werte (als Variant) und wandle sie dann in einen String um. Dies funktioniert bis jetzt soweit auch, bis auf das Problem, dass bei einem "boolschen TRUE" aus der DB der Wert in "-1" umgewandelt wird.
Ich habe auch schon versucht, eine "TRUE-Konstante" am "Database Variant to Data" anzuschließen und dann über den Fehlercluster einen boolschen Wert abzufragen, aber das funktioniert nicht.
Kann mir jemand sagen, was ich da machen könnte, dass da ein True oder eine 1 drin steht?
Gruß Markus
(VI LV 8.2)
-------------------------------------------------------------------------- Bitte stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort !!
--------------------------------------------------------------------------
Developer Suite Core -> LabVIEW 2015 Prof.
2006
EN
71083
Deutschland
TRUE aus Datenbank (Variant) wird in -1 umgewandelt.
Keiner 'ne Ahnung? Bei NI habe ich jetzt auch mal nachgefragt.
Gruß Markus
-------------------------------------------------------------------------- Bitte stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort !!
--------------------------------------------------------------------------
TRUE aus Datenbank (Variant) wird in -1 umgewandelt.
Was soll dein VI genau machen? Der Eingang besteht bei mir nur aus folgender Nachricht:
'': OLE Variant
Variant Type -> VT_EMPTY
Am Ausgang kommt nichts raus. Wahrscheinlich fehlt mir die zugrundeliegende DB. Aber wie sieht denn der Datensatz normalerweise aus? Und was liegt am Eingang von "Variant to data" und was am Ausgang an?
Ich nehme an, eine simple Abfrage - wenn =-1, dann True - willst du nicht verwenden?!
Developer Suite Core -> LabVIEW 2015 Prof.
2006
EN
71083
Deutschland
TRUE aus Datenbank (Variant) wird in -1 umgewandelt.
Hab' mal 3 Screenshots beigefügt, wo man das Problem sieht. Default und 2 werden richtig konvertiert, TRUE nicht.
Die Abfrage nach -1 ist insofern nicht möglich, da auch ein "normaler" Wert -1 sein kann. Da würde die Konvertierung ja stimmen.
Gruß Markus
' schrieb:Was soll dein VI genau machen? Der Eingang besteht bei mir nur aus folgender Nachricht:
'': OLE Variant
Variant Type -> VT_EMPTY
Am Ausgang kommt nichts raus. Wahrscheinlich fehlt mir die zugrundeliegende DB. Aber wie sieht denn der Datensatz normalerweise aus? Und was liegt am Eingang von "Variant to data" und was am Ausgang an?
Ich nehme an, eine simple Abfrage - wenn =-1, dann True - willst du nicht verwenden?!
-------------------------------------------------------------------------- Bitte stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort !!
--------------------------------------------------------------------------
16.10.2007, 15:28 (Dieser Beitrag wurde zuletzt bearbeitet: 16.10.2007 15:29 von jg.)
TRUE aus Datenbank (Variant) wird in -1 umgewandelt.
Hallo, Markus,
ich vermute mal, dass da eigentlich alles richtig läuft. Wenn ich mich recht erinnere, wird "Logisch wahr" manchmal auch als Bitmuster "111...1" gespeichert. Der Link von Wikipedia (Suche nach 3. Auftreten von "Boolean") bestärkt mich in dieser Erinnerung.
Und das Bitmuster "111...1" ist halt, wenn es als Integer interpretiert wird, gleich -1.
MfG, Jens
Wer die erhabene Weisheit der Mathematik tadelt, nährt sich von Verwirrung. (Leonardo da Vinci)
!! BITTE !! stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort!
TRUE aus Datenbank (Variant) wird in -1 umgewandelt.
Das ist in der Tat äußerst seltsam. Allerdings kann ich mich erinnern, dass es bei Visual Basic ein ähnliches Problem gibt. Lies dir dazu mal den Abschnitt "Boolescher Typ wird nciht präzise in den numerischen Typ konvertiert" auf http://msdn2.microsoft.com/de-debrary/a...yt8(VS.80).aspx
durch.
Vielleicht hilft dir das ja, obwohl ich es kaum glaube... Das ist halt nur eine Feststellung.
Was passiert beim Umwandeln mit einer True-Konstante am VI? Eine Möglichkeit (wenn auch keine besonders tolle) wäre doch, die Umwandlung in String UND in Boolesch zu machen und wenn eine -1 heraus kommt, wird überprüft, ob am booleschen Ausgang ein True anliegt. Wenn ja, wird dies übergeben, wenn nicht, die -1. Das setzt natürlich vorraus, dass eine -1 am Eingang nicht auch zum True gewandelt wird.
Developer Suite Core -> LabVIEW 2015 Prof.
2006
EN
71083
Deutschland
TRUE aus Datenbank (Variant) wird in -1 umgewandelt.
Das Problem ist, dass der Boolsche Ausgang auch bei Zahlen (Integer, Double,...) "TRUE" wird.
Wenn der Ausgang nur bei "TRUE" gesetzt würde, dann würde es so funktionieren. Das habe ich aber auch schon probiert..... Ich habe es auch über das "Error-Cluster" versucht (wie meine Fallunterscheidung bei den Kommazahlen), aber es gibt auch "fehlerfreie" nicht-boolsche Werte (d.h. das Errorcluster zeigt mir auch bei normalen Werten keinen Fehler an, sondern nur wenn das Feld leer ist), so dass mir das auch nicht weiterhilft.
Das mit dem Visual Basic kann ich leider so nicht auf LabVIEW anwenden.
Gruß Markus
' schrieb:Das ist in der Tat äußerst seltsam. Allerdings kann ich mich erinnern, dass es bei Visual Basic ein ähnliches Problem gibt. Lies dir dazu mal den Abschnitt "Boolescher Typ wird nciht präzise in den numerischen Typ konvertiert" auf http://msdn2.microsoft.com/de-debrary/a...yt8(VS.80).aspx
durch.
Vielleicht hilft dir das ja, obwohl ich es kaum glaube... Das ist halt nur eine Feststellung.
Was passiert beim Umwandeln mit einer True-Konstante am VI? Eine Möglichkeit (wenn auch keine besonders tolle) wäre doch, die Umwandlung in String UND in Boolesch zu machen und wenn eine -1 heraus kommt, wird überprüft, ob am booleschen Ausgang ein True anliegt. Wenn ja, wird dies übergeben, wenn nicht, die -1. Das setzt natürlich vorraus, dass eine -1 am Eingang nicht auch zum True gewandelt wird.
-------------------------------------------------------------------------- Bitte stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort !!
--------------------------------------------------------------------------
TRUE aus Datenbank (Variant) wird in -1 umgewandelt.
' schrieb:Kann mir jemand sagen, was ich da machen könnte, dass da ein True oder eine 1 drin steht?
Hi Markus,
sag mal, was steht denn eigentlich genau in der Datenbank? Ein "TRUE" als "Text" oder ne "1" als Text oder ne "1" als Numerischer Wert?
Ich erinnere mich dunkel, dass ich in dieser Richtung mal Probleme beim auslesen und umwandeln hatte, als ich Daten in ne mySQL-DB geschrieben habe...ist aber schon fast vier Jahre her, ich weiß es deswegen nicht mehr so genau!
Evtl. kannst du das mal testen und die verschiedenen Varianten reinschreiben...vielleicht hilft's was!
Viel Glück!
Achim
"Is there some mightier sage, of whom we have yet to learn?"
"Opportunity is missed by most people because it is dressed in overalls and looks like work." (Thomas Edison)
18.10.2007, 07:45 (Dieser Beitrag wurde zuletzt bearbeitet: 18.10.2007 07:45 von Y-P.)
Developer Suite Core -> LabVIEW 2015 Prof.
2006
EN
71083
Deutschland
TRUE aus Datenbank (Variant) wird in -1 umgewandelt.
Hi Achim,
in der DB steht "TRUE" als "Boolean".
Ich habe nun folgende (angehängte) Lösung gefunden. Da habe ich zwar ein bisschen improvisieren müssen, aber es funktioniert.
Der Grund wieso da -1 angezeigt wird, würde mich zwar auch interessieren, aber die Hauptsache ist, dass es jetzt funktioniert.
Gruß Markus
' schrieb:Hi Markus,
sag mal, was steht denn eigentlich genau in der Datenbank? Ein "TRUE" als "Text" oder ne "1" als Text oder ne "1" als Numerischer Wert?
Ich erinnere mich dunkel, dass ich in dieser Richtung mal Probleme beim auslesen und umwandeln hatte, als ich Daten in ne mySQL-DB geschrieben habe...ist aber schon fast vier Jahre her, ich weiß es deswegen nicht mehr so genau!
Evtl. kannst du das mal testen und die verschiedenen Varianten reinschreiben...vielleicht hilft's was!
Viel Glück!
Achim
-------------------------------------------------------------------------- Bitte stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort !!
--------------------------------------------------------------------------