Autor
|
Thema: In SQL-Datenbank schreiben (1383 mal gelesen)
|
Rob86 Mitglied Student
Beiträge: 45 Registriert: 19.12.2012 NX 8.0 TC 9.1 TM PlantSim 11
|
erstellt am: 20. Feb. 2015 11:56 <-- editieren / zitieren --> Unities abgeben:
Hallo zusammen, aus Plant Simulation möchte ich gerne eine SQL-Datenbank befüllen. Ich baue die Datenverbindung auf, erstelle eine Tabelle und möchte Daten aus einer PlantSim-Tabelle exportieren. Die Werte aus der PlantSim-Tabelle möchte ich per "INSERT INTO" schreiben. Mein Befehl sieht in etwa so aus: sql:="INSERT INTO newtbl (spalte1, spalte2, spalte3, spalte4) VALUES (wert1,wert2,0,0)"; Ich möchte also Werte von Variablen und zwei Nullen in die Tabelle schreiben. Allerdings bekomme ich immer die Fehlermeldung "Ungültiger Spaltenname wert1". Durch das VALUES ist ja aber eigentlich deklariert, dass das kein Spaltenname ist sondern ein Wert. Jetzt habe ich schon gelesen dass man das SQL-seitig wohl mit Parametern lösen kann. Ich konnte bisher aber leider nichts dazu finden, wie man Parameter für SQL in simtalk verwendet. Hat hier jemand schon einmal mit Parametern für SQL gearbeitet und hat einen Rat ? Oder hatte schon jemand das gleiche Problem mit INSERT INTO und Variablenwerten und kann mir helfen? Vielen Dank Gruß Rob Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Bon Simul Mitglied Simulant
Beiträge: 1250 Registriert: 08.08.2011 Plant Simulation 10.1, 11 ff Professional
|
erstellt am: 20. Feb. 2015 12:07 <-- editieren / zitieren --> Unities abgeben: Nur für Rob86
Alles, was Sie in SQL nicht in Hochkommas einschließen und Text ist, wird als Tabellen oder Spaltenname interpretiert. Sie Müssen Wert1 in Hochkommas einschließen 'wert1' [Diese Nachricht wurde von Bon Simul am 20. Feb. 2015 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Rob86 Mitglied Student
Beiträge: 45 Registriert: 19.12.2012 NX 8.0 TC 9.1 TM PlantSim 11
|
erstellt am: 20. Feb. 2015 14:51 <-- editieren / zitieren --> Unities abgeben:
Hallo, vielen Dank für die Antwort. Diese Möglichkeit hatte ich auch schon ausprobiert. Allerdings wird so dann wert1 als Text in die SQL-Anweisung geschrieben und ich brauche aber den Wert der Variable "wert1". So liefert mir die SQL-Anweisung den Fehler: Fehler beim Konvertieren des varchar-Datentyps in real. die SQL-Anweisung sieht wie folgt aus: INSERT INTO newtbl (spalte1, spalte2, spalte3, spalte4) VALUES ('wert1','wert2',0,0). Irgendwie muss ich doch auf den Variablenwert hinter wert1 kommen ?! dank&gruß Rob Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Bon Simul Mitglied Simulant
Beiträge: 1250 Registriert: 08.08.2011 Plant Simulation 10.1, 11 ff Professional
|
erstellt am: 20. Feb. 2015 14:56 <-- editieren / zitieren --> Unities abgeben: Nur für Rob86
|
Rob86 Mitglied Student
Beiträge: 45 Registriert: 19.12.2012 NX 8.0 TC 9.1 TM PlantSim 11
|
erstellt am: 20. Feb. 2015 14:59 <-- editieren / zitieren --> Unities abgeben:
|
Bon Simul Mitglied Simulant
Beiträge: 1250 Registriert: 08.08.2011 Plant Simulation 10.1, 11 ff Professional
|
erstellt am: 20. Feb. 2015 16:07 <-- editieren / zitieren --> Unities abgeben: Nur für Rob86
Sie müssen den Inhalt der Variable in einen String umwandeln. Dazu können Sie den Befehl to_str(xxx) verwenden. Die SQL Anweisung müssten Sie dann aus fixen Bestandteilen und Werten "zusammenbauen" z.B. Code:
sql:="INSERT INTO newtbl (spalte1, spalte2, spalte3, spalte4) VALUES ("+ to_str(wert1)+","+to_str(wert2)+",0,0)";
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Rob86 Mitglied Student
Beiträge: 45 Registriert: 19.12.2012 NX 8.0 TC 9.1 TM PlantSim 11
|
erstellt am: 20. Feb. 2015 19:14 <-- editieren / zitieren --> Unities abgeben:
|
Bon Simul Mitglied Simulant
Beiträge: 1250 Registriert: 08.08.2011 Plant Simulation 10.1, 11 ff Professional
|
erstellt am: 21. Feb. 2015 09:52 <-- editieren / zitieren --> Unities abgeben: Nur für Rob86
Die SQL Anweisung insgesamt ist ein String!! Deshalb müssen Sie alles als String einbauen. Strings innerhalb einer SQL Anweisung müssen in Hochkommas eingeschlossen sein. Lassen Sie sich die SQL-Anweisung in der Konsole ausgeben (print sql ) [Diese Nachricht wurde von Bon Simul am 21. Feb. 2015 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Rob86 Mitglied Student
Beiträge: 45 Registriert: 19.12.2012 NX 8.0 TC 9.1 TM PlantSim 11
|
erstellt am: 23. Feb. 2015 16:11 <-- editieren / zitieren --> Unities abgeben:
|