🙏 Helfen Sie mit, unser LibreOffice Forum zu erhalten! 🙏
Mit Ihrer Spende sichern Sie den Fortbestand, den Ausbau und die laufenden Kosten dieses Forums. 🌱

🍀 Jeder Beitrag zählt – vielen Dank für Ihre Unterstützung!🍀

❤️ DANKE >> << DANKE ❤️

>> Dank Ihrer Unterstützung -> Keine Werbung für alle registrierten LibreOffice-Forum User! <<
🤗 Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet. 🤗

Importieren aus anderer Base Datenbank

Base ermöglicht es Ihnen, Ihre Daten in einer Datenbank direkt mit LibreOffice zu bearbeiten.
irrlicht
Beiträge: 5
Registriert: Di 27. Sep 2011, 07:02

Importieren aus anderer Base Datenbank

Beitrag von irrlicht » Di 27. Sep 2011, 07:09

Hallo,

ich habe vier Computer, an denen Daten in identische Base Datenbanken eingegeben werden. Da die Rechner nicht vernetzt sind, sollen die Daten abends von Hand in einer fünften Datenbank zusammengeführt werden. Wie mache ich das?

komma4
Beiträge: 185
Registriert: Sa 13. Aug 2011, 10:01
Wohnort: Chonburi Thailand Asia
Kontaktdaten:

Re: Importieren aus anderer Base Datenbank

Beitrag von komma4 » Di 27. Sep 2011, 12:10

Du ziehst Dir die vier ODBs auf einen Stick, öffnest die Ziel.odb und kopierst dann die zusätzlichen Daten aus den 4 Tabellen in die Zieltabelle.

Hast Du einen eindeutigen Primärschlüssel, so musst Du einen Umweg über eine CALC-Tabelle gehen.


Alternative* Vorgehensweise:

am Ende des Arbeitstages folgendes SQL-Komamndo absetzen (Extras>SQL...)

Code: Alles auswählen

select "Bezeichnung" AS "Bezeichnung", "Betrag" as "Betrag", "Soll/Haben" AS "SH" into Text "computer1"  from "tab_TABELLENNAME" WHERE "id" > 19
und dann diese Textdatei (erstellt im Verzeichnis der ODB, mit automatischer Endung .csv) auf Stick kopieren

Daten im Ziel-Computer öffnen, markieren, kopieren und per Bearbeiten>Einfügen in die Zieltabelle bringen

*Einschränkungen
  1. kann nicht als Abfrage in der ODB gespeichert werden
  2. Es wird keine Kopfzeile erstellt
  3. Zahlen im amerikanischem Format
  4. Standardkodierung ASCII - Umlaute werden als ? gespeichert

Hilft Dir das weiter?
Cheers
Winfried
aktuell: openSuse 13.1 mit LO 4.3.7.2
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als Extension)

irrlicht
Beiträge: 5
Registriert: Di 27. Sep 2011, 07:02

Re: Importieren aus anderer Base Datenbank

Beitrag von irrlicht » Do 29. Sep 2011, 12:02

Danke für die Antwort.

Der Umweg über Calc funktioniert, ist aber doch etwas umständlich.

Die alternative Methode über die CSV Datei geht nicht - ich bekomme immer Fehlermeldungen.
Das hier geht: select * from Kasse
Und das nicht: select * into Text Kasse1 from Kasse
SQL-Status: HY000
Fehler-Code: 1000
syntax error, unexpected $end, expecting BETWEEN or IN or SQL_TOKEN_LIKE
Syntax error in SQL expression

Ich bin vieleicht etwas von SQL Server verwöhnt, aber gibt es nicht einen Import, bei dem die Daten per Query selektiert werden?

komma4
Beiträge: 185
Registriert: Sa 13. Aug 2011, 10:01
Wohnort: Chonburi Thailand Asia
Kontaktdaten:

Re: Importieren aus anderer Base Datenbank

Beitrag von komma4 » Do 29. Sep 2011, 12:15

irrlicht hat geschrieben:Die alternative Methode über die CSV Datei geht nicht - ich bekomme immer Fehlermeldungen.
Meine Tipps sind immer getestet (wenn nichts anderes vermerkt): Du musst die Syntax genau einhalten.
Wichtig bei dem CSV-Export der internen HSQLDB sind zB die AS "Bezeichner"

irrlicht hat geschrieben:aber gibt es nicht einen Import, bei dem die Daten per Query selektiert werden?
Nein.
Zum Einen arbeitest Du mit zwei ODB-Dateien - die eine kann auf die andere nicht zugreifen.
Zum Anderen speichert BASE nur SELECT Abfragen, aber keine INSERT Anweisungen.

Wenn ich mich recht entsinne habe ich mit BASIC mal was gemacht (zwei ODBs, von der einen in die andere schaufeln), wenn's Dich interessiert, dann krame ich mal in der Kiste...
Cheers
Winfried
aktuell: openSuse 13.1 mit LO 4.3.7.2
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als Extension)

irrlicht
Beiträge: 5
Registriert: Di 27. Sep 2011, 07:02

Re: Importieren aus anderer Base Datenbank

Beitrag von irrlicht » Do 29. Sep 2011, 14:06

Ok, ich versuche es nochmal.

SELECT "Teilnehmer", "Preis" FROM "Kasse" -> OK
SELECT "Teilnehmer" AS "Teilnehmer", "Preis" AS "Preis" FROM "Kasse" -> OK

SELECT "Teilnehmer" AS "Teilnehmer", "Preis" AS "Preis" into Text "computer1" FROM "Kasse" -> Fehler (wie vorher beschrieben)

Meiner Meinung nach habe ich Deine Query und Syntax genau umgesetzt, aber vielleicht übersehe ich die entscheidende Kleinigkeit.

Dein Angebot wegen dem Basic Programm ist nett, aber ich dachte, ich käme mit LibreOffice Bordmitteln aus. Wenn man noch etwas extra machen muß, würde ich mit Qt und PostgreSQL eine Lösung bauen. Wegen der besseren Benutzerführung in einer eigenen Oberfläche tendiere ich sowieso dahin, allerdings hat eine kompakte Lösung im Rahmen von LibreOffice ohne Zusatztools auch ihren Reiz, besonders wenn sie an einen Nachfolger ohne Programmierkenntnisse übergeben wird.

komma4
Beiträge: 185
Registriert: Sa 13. Aug 2011, 10:01
Wohnort: Chonburi Thailand Asia
Kontaktdaten:

Re: Importieren aus anderer Base Datenbank

Beitrag von komma4 » Do 29. Sep 2011, 14:43

irrlicht hat geschrieben:SELECT "Teilnehmer" AS "Teilnehmer", "Preis" AS "Preis" into Text "computer1" FROM "Kasse"
Die Abfrage funktioniert (bei angepassten Spalten-/Tabellennamen) immer noch:

Stimmt die Gross-/Kleinschreibung in der Anweisung mit Deinen Namen überein?
Hast Du Schreibrechte im Verzeichnis der ODB?
computer1.csv.zip
erstellte Datei
(36 Bytes) 351-mal heruntergeladen
Ist KEINE zip-Datei, nur CSV oder TXT Dateien können hier nicht angehängt werden


Verstehe Deine Einwände ggü. BASIC-Programmierung up2you, wie man hier so schön sagt :)


Wait a minute...
Du sagst jetzt das erste Mal was von "Postgres" - ich bin natürlich von HSQLDB (weil: Angabe fehlte!) ausgegangen!
Die Syntax ist bestimmt eine andere...

Muss jetzt mit der Familie zum Abendessen... später mehr (wenn Du es nicht selbst rausfinden kannst: http://www.postgresql.org/docs/9.0/static/sql-copy.html)
Cheers
Winfried
aktuell: openSuse 13.1 mit LO 4.3.7.2
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als Extension)

irrlicht
Beiträge: 5
Registriert: Di 27. Sep 2011, 07:02

Re: Importieren aus anderer Base Datenbank

Beitrag von irrlicht » Do 29. Sep 2011, 15:16

Gut, ich versuche es morgen nochmal - jetzt muß ich mit meinem Sohn zum Arzt.

PostgreSQL ist eine Alternative. Momentan versuche ich es mit LibreOffice Base.

Die Syntax sollte in Ordnung sein, da ich die Abfrage mit dem Assistenten erstellt habe. Außerdem funktionieren die ersten beiden Varianten und die Spalten sind beim dritten Versuch identisch geschrieben (copy/paste). Den eingefügten Teil nach der zweiten Variante habe ich direkt aus Deinem Beitrag kopiert.

Also dann bis morgen

komma4
Beiträge: 185
Registriert: Sa 13. Aug 2011, 10:01
Wohnort: Chonburi Thailand Asia
Kontaktdaten:

Re: Importieren aus anderer Base Datenbank

Beitrag von komma4 » Do 29. Sep 2011, 17:06

irrlicht hat geschrieben:Momentan versuche ich es mit LibreOffice Base.
Hier: LO 3.4.3 (vom Projekt) mit openSuse 11.3, JRE 1.6.0_27

Ergänzung: ich halte nicht viel von der internen HSQLDB.
Wenn ihr auf PostgreSQL umsteigen wollt - dann macht das gleich. Aber - wo gibt's denn nicht vernetzte Rechner, die eine eigene psql Installation haben :lol:
Cheers
Winfried
aktuell: openSuse 13.1 mit LO 4.3.7.2
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als Extension)

irrlicht
Beiträge: 5
Registriert: Di 27. Sep 2011, 07:02

Re: Importieren aus anderer Base Datenbank

Beitrag von irrlicht » Fr 30. Sep 2011, 10:33

Ok, jetzt habe ich den Grund für mein Problem gefunden: Ich habe Deine Anleitung nicht exakt gelesen. Ich hatte meine Versuche in der Abfrage-Ansicht gemacht und da man diese Abfrage nicht speichern kann, wird sie auch nicht akzeptiert. Mit 'Extras->SQL' geht es...

Irgendwie ist es ja bescheuert, daß man ein gültiges SQL Statement nicht speichern kann.

Zum Verständnis - du warst ja über die PostgreSQL Idee erstaunt - hier ein kurze Übersicht:

Wir machen vom Kindergarten zweimal im Jahr eine Kleiderbörse. Unser bisheriger Betreuer für Hard- und Software hört nun auf und wir brauchen eine neue Lösung. Man könnte die Computer zwar drahtlos vernetzen, aber das wären zusätzliche Kosten und ob das im Ernstfall störungsfrei funktioniert ist nicht sicher. Bisher hatten wir Access, aber in Zukunft werden wir voraussichtlich auf Linux setzen, da kein Geld für (Windows) Lizenzen da ist. Das wäre aber nur möglich, wenn wir eigene Laptops kaufen. Das das sehr teuer wäre, könnte man auch Laptops ausleihen und dann wäre die LibreOffice Portable Lösung vermutlich der einfachste Weg. Base ist zwar keine richtige Datenbank, aber vermutlich auchnicht schlechter als Access. Besser wäre natürlich SQL Server Express Edition, aber da müßte man erst jedes mal auf fremden Rechnern installieren. MySQL kommt wegen Oracle nicht in Frage. Also bleiben noch Firebird oder PostgreSQL. Das Problem ist dann nur, daß man etwas programmieren muß. Das ist zwar für mich kein Problem, aber vermutlich für einen Nachfolger. Von daher kann ich mich noch nicht zwischen der schönen, aber komplizierten und der einfachen, aber unkomfortablen Lösung entscheiden.

Vielen Dank aber nochmal für die Hilfe.

komma4
Beiträge: 185
Registriert: Sa 13. Aug 2011, 10:01
Wohnort: Chonburi Thailand Asia
Kontaktdaten:

Re: Importieren aus anderer Base Datenbank

Beitrag von komma4 » Fr 30. Sep 2011, 11:06

irrlicht hat geschrieben:Irgendwie ist es ja bescheuert, daß man ein gültiges SQL Statement nicht speichern kann.
Man kann gültige SQL-Abfragen im vorgesehenen Container speichern.

Andere SQL-Anweisungen aber eben nicht - sieht das Design nicht vor.
Man kann diese aber in einer Textdatei speichern, kopieren und dann ausführen ;)


Zur DB: habe keine eigene Erfahrung damit, weiss aber aus einem anderen Forum, dass SQLIte mit OOo gut zusammen arbeitet - auch auf einem Stick und warum nicht mit LO.
Inwieweit das "pflegeleicht" ist - kann ich nicht beurteilen.

Viel Erfolg!
Cheers
Winfried
aktuell: openSuse 13.1 mit LO 4.3.7.2
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als Extension)


An alle, die das LibreOffice-Forum gern nutzen und unterstützen wollen:


Bitte helfen Sie uns mit 7 Euro pro Monat.
Durch Ihren Beitrag tragen Sie dazu bei, unsere laufenden Kosten für die kommenden Monate zu decken.
Unkompliziert per Kreditkarte oder PayPal.
Als ein kleines Dankeschön werden Sie im LO-Forum als SUPPORTER gekennzeichnet.



Antworten