Hallo Parcival,
Parcival hat geschrieben:Wie kann ich in Openoffice Base mehrere SQL-Befehle (quasi wie Programmcode) nacheinander ausführen lassen? Z.B.: Erst Daten einlesen aus CSV-Datei (geht glaub ich schonmal nicht), dann bestimmte Datentypen ändern, dann neue Variable einführen, dann Select auf die "aufbereitete" Datenbank.
Datein aus einer CSV-Datei einlesen geht per SQL-Code in die eingebaute HSQLDB schon einmal nicht. Es steht kein Kommando wie z.B. unter MySQL (LOAD DATA INFILE) zur Verfügung. Die Daten musst Du also anderweitig aufbereieten.
Parcival hat geschrieben:
Wenn ich z.B. versuche, eine Abfrage in der SQL-Ansicht mit mehreren SQL-Befehlen zu erstellen, erhalte ich einen Syntax Error. Auch scheint Base in der Abfage bestimmte SQL-Befehle wie ALTER TABLE nicht zu erkennen.
Eigentlich sagt das schon der Begriff, der dort erwartet wird: Über diese Schnittstelle gehen nur Abfragen, also SELECT, aber kein INPUT oder UPDATE und noch viel weniger Tabellenänderungen.
Parcival hat geschrieben:
Ich weiß, ich könnte die Befehle auch sequenziell unter Extras -> SQL eingeben, aber das kann doch keine Lösung sein für Datenbanken, die ich immer wieder neu einlesen und aufbereiten muss.
Du kannst natürlich unter Extras - SQL verschiedenen Kommandos hintereinander mit einem Semikolon auf einmal eingeben. Das ist für mich z.B. eine Lösung, wenn ich Beispieldatenbanken wieder auf zurück auf die Startposition mit Autoinkrementwerten ab 0 setzen will. Dann habe ich eine einfache Textdatei, die ich kopiere und in Extras → SQL einfüge.
Für das, was Du erreichen willst, musst Du Dich mit Makros auseinandersetzen. Dafür reicht die grafische Benutzeroberfläche so nicht aus.
Ich empfehle Dir als Einstieg einmal bei den LibreOffice- Handbüchern (
http://de.libreoffice.org/hilfe-kontakt/handbuecher/ zu gucken. Da gibt es in dem Base-Handbuch ein Kapitel zu Makros, das zumindest den Einstieg klar macht und auch den Zugriff mittels SQL-Befehlen auf die Datenbank klärt. CSV-Dateien musst Du natürlich über Makros dann einlesen und entsprechend aufbereiten, damit die Daten zeilenweise eingelesen werden können. Einfacher wäre es da sicher, eine Datenbank zu nutzen, die so eine Funktion eingebaut hat - wie z.B. MySQL.
Gruß
Robert