LabVIEWForum.de
In MySQL Datenbank schreiben - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+---- Forum: Datenbank & File IO (/Forum-Datenbank-File-IO)
+---- Thema: In MySQL Datenbank schreiben (/Thread-In-MySQL-Datenbank-schreiben)

Seiten: 1 2


In MySQL Datenbank schreiben - stoni77 - 08.04.2011 15:18

hallo liebe leute!

ich würde gerne verschiedene benutzer, über labview, in einer ODBC datenbank speichern.
die benutzerID sollte durch autoincrement angelegt werden.
wenn ich die benutzer + der ID per hand eingebe funktioniert es normal

meine frage: wie kann ich es über LabView realisieren das ich nur den Benutzer eingebe und das autoinkrement automatisch passiert?
hier mein noch bescheidenes programm:
[attachment=33192]

und so sollte normalerweise in die tabelle eingefügt werden:
[attachment=33193]

lg stoni


RE: In MySQL Datenbank schreiben - rolfk - 08.04.2011 23:24

(08.04.2011 15:18 )stoni77 schrieb:  hallo liebe leute!

ich würde gerne verschiedene benutzer, über labview, in einer ODBC datenbank speichern.
die benutzerID sollte durch autoincrement angelegt werden.
wenn ich die benutzer + der ID per hand eingebe funktioniert es normal

meine frage: wie kann ich es über LabView realisieren das ich nur den Benutzer eingebe und das autoinkrement automatisch passiert?
hier mein noch bescheidenes programm:


und so sollte normalerweise in die tabelle eingefügt werden:


lg stoni

Autoincrement Felder sind eine Funktion der Datenbank, nicht der Endanwendung. D.h. man definiert in der Datenbank die entsprechende Kolonne als Autoincrement, und fügt dieses Feld von der Endanwendung aus ÜBERHAUPT NICHT hinzu. Also nur ein INSERT mit dem Benützernamen, die Erzeugung des Autoincrementfeldes macht die Datenbank dann selber.


RE: In MySQL Datenbank schreiben - stoni77 - 09.04.2011 14:30

danke für deine schnelle antwort!

ja da stimmt schon, aber so wie ich es geschrieben habe funktioniert es wegen dem autoincrement nicht. labview gibt immer einen fehler aus : "ADO Error: 0x00000001
Argument error; the number of columns does not equal the number of parameters." wie kann ich labview mitteilen das der erste parameter ein autoincrement ist und demzufolge keine notwendichkeit besteht diesen parameter anzugeben?


RE: In MySQL Datenbank schreiben - jg - 09.04.2011 17:28

Offtopic2
Bitte Shift-Taste beim Verfassen von Beiträgen verwenden. Beiträge im SMS-Stil (alles klein geschrieben) sind im LVF unerwünscht (vgl. auch LVF-Regeln).

Gruß, Jens


RE: In MySQL Datenbank schreiben - stoni77 - 09.04.2011 21:35

OK sorry!
Ich hoffe ihr könnt mir trotzdem mit meinem Problem weiterhelfen.


RE: In MySQL Datenbank schreiben - jg - 10.04.2011 08:53

Es funktioniert genauso wie es Rolf schon erklärt hat: Die ID-Spalte darfst du von LabVIEW aus nicht eintragen:
[attachment=33202]
Gruß, Jens


RE: In MySQL Datenbank schreiben - stoni77 - 10.04.2011 14:27

Hab auch schon so probiert! Dann kommt der Error: "ADO Error: 0x00000001 Argument error. One of the column names specified is blank." Ich muss LabVIEW alle Spaltennamen bekanntgeben.


RE: In MySQL Datenbank schreiben - jg - 10.04.2011 16:11

Hast du auch wirklich nur ein Array mit 1 Element an den Eingang "columns" angeschlossen? Schau genau auf meinen Screenshot!
Und überprüfe nochmals, ob die Spalte idBenutzer wirklich auf Autoindex steht.

Wenn ja, dann muss innerhalb der MySQL-Workbench ein SQL-Befehl der Art
INSERT INTO `benutzer` (`Name`) VALUES ('xyz')
funktionieren.

Gruß, Jens


RE: In MySQL Datenbank schreiben - stoni77 - 10.04.2011 16:53

Ok ich habe eine Lösung gefunden: Man muss einfach einen Leerstring hinzufügen:
[attachment=33211]

Jetzt funktioniert der Teil endlich einmal!
Noch eine kleine Frage am Rande: gibt es eine Möglichkeit bei einer double Zahl die Stellen nach zB. der 2ten Stelle einfach wegzuschneiden?

Vielen Dank!


Beste Grüße,
Stoni


RE: In MySQL Datenbank schreiben - Holy - 10.04.2011 19:18

Bei Anzeigeelementen kannst angeben wieviele Nachkommastellen angezeigt werden sollen. Bei Konvertierung von einer Zahl in einen String kannst du die Anzahl an Nachkommastellen auch festlegen (Precision-Eingang an der Funktion "Number to Fractional String").
Das Abschneiden direkt am Double könntest zwar über eine Berechnung realisieren aber aufgrund der Natur der Doubles hast dann evtl. wieder mehr als 2 Stellen (z.B. mit 100 multiplizieren, auf nächste Ganzzahl runden und wieder durch 100 teilen).