Versionsproblem bei ADOTool_Insert Data.vi |
Versionsproblem bei ADOTool_Insert Data.vi |
24. Jul 2013, 15:25
Post
#1
|
|
new Member Group: Members Posts: 2 Joined: 11.02.2013 Member No.: 405 LV Version: 2012 Zertifizierung: keine |
Hallo,
ich habe mit LabView 2012 ein Programm entwickelt dass mit Hilfe von ADOTool Daten in eine mySQL Datenbank schreibt. Funktioniert wunderbar! Allerdings muss das Programm auch auf LabView 8.5 ausführbar sein. Dabei macht das ADOTool_Insert Data Probleme. Ich erhalte folgende Fehlermeldung: Exception occured in Microsoft OLE DB Provider for ODBC Drivers: [MySQL][ODBC 5.2(w) Driver][mysqld-5.5.31-0ubuntu0.12.04.2]Column count doesn't match value count at row 1 in ADOTool_ADO API.vi->ADOTool_Insert Data.vi->Stringbox_UI.vi Ich habe es mit ADO-Tool 1.7.1 und ADO-Tool 1.7.0.b versucht. Als ODBC Treibe hab ich sowohl ODBC 5.2 ANSI Driver alsauch ODBC 5.2 Unicode Driver versucht Woran könnte es liegen? |
|
|
28. Jul 2013, 08:47
Post
#2
|
|
proven Member Group: Administrators Posts: 315 Joined: 16.10.2006 From: Düsseldorf Member No.: 2 LV Version: current Zertifizierung: CLA LV User seit: 2001 |
Exception occured in Microsoft OLE DB Provider for ODBC Drivers: [MySQL][ODBC 5.2(w) Driver][mysqld-5.5.31-0ubuntu0.12.04.2]Column count doesn't match value count at row 1 in ADOTool_ADO API.vi->ADOTool_Insert Data.vi->Stringbox_UI.vi [...] Woran könnte es liegen? das liegt an dem gesendeten SQL-Query. Es handelt sich vermutlich um ein Insert oder ein Update-Statement und die Fehlermeldung besagt, dass die Anzahl der zu ändernden/einzufügenden Spalten nicht der Anzahl der übergebenen Werte entspricht. Diese Fehlermeldung kann unter anderem auch dadurch entstehen, in dem man den lokalen Dezimalpunkt verwendet und Fließkommazahlen einfügen will. Wenn man dann nicht mit "%.;" im Format-to-String explizit angibt dass der Punkt als Dezimaltrennzeichen verwendet werden soll, dann interpretiert der Treiber die Zahl 16,923 als 2 Spalten mit den Integer-Werten 16 und 923 und meldet einen Fehler. Beispiel: INSERT INTO test (wert) VALUES (16,923) für zu dem oben erläuterten Fehler weil nur eine Spalte angegeben ist, der Parser die Zahl in dem Form "16,923" aber als 2 Werte interpretiert. richtig wäre INSERT INTO test (wert) VALUES (16.923) -------------------- künstliche Intelligenz ist besser als natürliche Dummheit!
rotabench:rotierende Prüfstände nach dem Baukasten-Prinzip |
|
|
30. Jul 2013, 13:42
Post
#3
|
|
new Member Group: Members Posts: 2 Joined: 11.02.2013 Member No.: 405 LV Version: 2012 Zertifizierung: keine |
Vielen Dank für die Hilfe!
Das Problem war, dass ich einmal als Dezimaltrennzeichen das Komma und einmal den Punkt verwendet habe. ADO Tool bzw. mySQL benötigt einen Punkt als Dezimaltrennzeichen! Lösung: Systemsteuerung -> Region und Sprache -> Formate -> Weitere Einstellungen -> Zahlen: Dezimaltrennzeichen: . LabView -> Werkzeuge -> Optionen -> Front Panel: Lokales Dezimalzeichen verwenden |
|
|
Lo-Fi Version | Time is now: 07.08.2024 - 07:23 |