' schrieb:INSERT INTO tabname (Spalte1, Spalte2,...) VALUES (Wert1,Wert2,...); SELECT @@identity.
Getestet haben wir das für die MySQL-Datenbank über das Programm "Navicat" und dort bekomme ich die Zeilennummer zurück.
Rufe ich eine solche Anweisung über die LabVIEW-Funktionen auf, erhalte ich eine Fehlermeldung vom ODBC-Treiber (für MySQL)
"... You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near '; select @@identity' at line 1. in Conn Execute.vi"
leider kann man mittels ADO immer nur ein SQL-Statement schicken, darum kommt es zu der Fehlermeldung, wenn du versuchst das SELECT @@identity an das erste Statement dranzuhängen. Das NI-DB-Toolkit kann das nicht verarbeiten, da es intern auch "nur" mit ADO arbeitet.
Du hast mehrere Möglichkeiten das zu umgehen:
1. Du programmierst deine DB Funktionalität so um, dass du sicher stellst, dass auf das INSERT immer sofort das SELECT @@identity folgt.
2. könnte es sein, dass MySQL die identity pro user anlegt? Da bin ich mir nicht sicher, aber ich könnte mir vorstellen, dass die Entwickler von MySQL genau diesen Fall vorhergesehen haben und entsprechende Vorkehrungen getroffen haben
3. Du programmierst dein Insert als Stored Procedure, die dir das Ergebnis der Einfügeoperation zurückliefert
WERBUNG: hast du dir schon mal
DAS HIER angeschaut?
Grüße
CB