Autor
|
Thema: Daten aus Tabelle in SQL Datenbank schreiben (1207 mal gelesen)
|
Fryyy Mitglied
Beiträge: 13 Registriert: 26.08.2016
|
erstellt am: 19. Jun. 2017 11:41 <-- editieren / zitieren --> Unities abgeben:
Hi, ich würde gerne die Daten die in einer Tabelle stehen in eine SQL-Datenbank schreiben. Gibt es da vielleicht einen einfachen Weg wie man das realisieren kann? Ich hatte mir den SQLite Baustein schonmal angeguckt, aber ich werde daraus irgendwie nicht schlau. Ich hoffe ihr könnt mir irgendwie dabei helfen. Viele Grüße Fryyy Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
nadin1223 Mitglied Ing.
Beiträge: 938 Registriert: 29.03.2016
|
erstellt am: 19. Jun. 2017 12:49 <-- editieren / zitieren --> Unities abgeben: Nur für Fryyy
Hallo Fryyy, das Beispiel von Bangsow hast dir schon angeschaut? ------------------ „Die einfachste Art an korrekte Informationen zu gelangen ist, etwas Falsches in ein Forum zu posten und auf die Korrektur zu warten.“ Matthew Austern Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Fryyy Mitglied
Beiträge: 13 Registriert: 26.08.2016
|
erstellt am: 19. Jun. 2017 13:13 <-- editieren / zitieren --> Unities abgeben:
Hi nadin, ja das hab ich schon gemacht, aber das Beispiel funktioniert irgendwie nicht. Ich glaub die Datenbank ist da irgendwie nicht richtig aufgebaut, weil ich krieg da immer einen Fehler mit "no such table: Lagerbestand". Oder muss ich davor noch irgendwas einstellen? Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Fryyy Mitglied
Beiträge: 13 Registriert: 26.08.2016
|
erstellt am: 20. Jun. 2017 10:12 <-- editieren / zitieren --> Unities abgeben:
Ich habe doch schonmal eine Möglichkeit gefunden wie ich die Daten aus einer Tabelle in die Datenbank schreiben kann. Ich habe das jetzt über eine for-Schleife gelöst. Zuerst wird einfach eine Tabelle auf der Datenbank erstellt mit den einzelnen Spalten und danach wird dieser Code ausgeführt for var i:=1 to Tabelle.YDim SQLite.prepare( "INSERT INTO Test (Zeit, Durchläufe, Typ) VALUES (?1, ?2, ?3)"); SQLite.bindString(1, to_str(Tabelle["Zeit",i])); SQLite.bindInteger(2, Tabelle["Durchläufe",i]); SQLite.bindString(3, Tabelle["Typ",i]); SQLite.step; next Mein Problem damit ist aber, dass es sehr lange dauert. Im Moment wird ja jedes Feld einzeln in die Datenbank geschrieben. Gibt es vielleicht eine Möglichkeit das Spaltenweise oder Zeilenweise zu machen? Weil bei mehreren 1000 Feldern würde das wirklich ewig dauern. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
nadin1223 Mitglied Ing.
Beiträge: 938 Registriert: 29.03.2016
|
erstellt am: 21. Jun. 2017 01:04 <-- editieren / zitieren --> Unities abgeben: Nur für Fryyy
erstelle String. Füge in for-Schleife die Werte diesen String hinzu (in SimTalk mit incl). Dann außerhalb von for-Schleife SQL öffnen, den String an SQL übergeben, SQL schließen. SQL will diese Struktur haben: INSERT INTO (Spalte, ...) Values (Wert, ...), (Wert, ...); vg Nadin
------------------ „Die einfachste Art an korrekte Informationen zu gelangen ist, etwas Falsches in ein Forum zu posten und auf die Korrektur zu warten.“ Matthew Austern Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Fryyy Mitglied
Beiträge: 13 Registriert: 26.08.2016
|
erstellt am: 06. Jul. 2017 15:42 <-- editieren / zitieren --> Unities abgeben:
Habe das mal versucht, es wird auch soweit in die Datenbank geschrieben, aber leider wird der komplette String in ein Feld geschrieben und ich möchte ja einfach die Tabelle wie sie in Plant Simulation steht in einer SQL-Datenbank. Also irgendwie wird der Zeilenumbruch da nicht beachtet. Hat irgendwer noch eine Idee wie das funktionieren könnte? VG Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Fryyy Mitglied
Beiträge: 13 Registriert: 26.08.2016
|
erstellt am: 12. Jul. 2017 13:48 <-- editieren / zitieren --> Unities abgeben:
Ok hat sich erledigt! Hab eine Methode gefunden wie es wirklich schnell geht. Ich speichere mir die Daten aus der Tabelle erst im :memory: über den SQLite-Baustein und kopiere mir diese dann in eine Datenbank mit dem Befehl SQLite.savetoFile() Das geht um so vieles schneller als wenn man die Daten direkt in die Datenbank speichert. Trotzdem vielen Dank für deine Hilfe nadin!!! VG Fryyy Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |