IPB

Welcome Guest ( Log In | Register )

 
Reply to this topicStart new topic
> Versionsproblem bei ADOTool_Insert Data.vi
ChristophE
post 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?
Go to the top of the page
 
+Quote Post
CB
post 28. Jul 2013, 08:47
Post #2


proven Member
****

Group: Administrators
Posts: 314
Joined: 16.10.2006
From: Düsseldorf
Member No.: 2
LV Version: current
Zertifizierung: CLA
LV User seit: 2001



QUOTE (ChristophE @ 24. Jul 2013, 16:25) *
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
Go to the top of the page
 
+Quote Post
ChristophE
post 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! thumbup.gif

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
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 User(s) are reading this topic (1 Guests and 0 Anonymous Users)
0 Members:

 



Lo-Fi Version Time is now: 19.12.2018 - 08:49