Import von Tabelle - Zeilenumbrüch erhalten

Datenbanklösungen mit AOO/LO

Moderator: Moderatoren

Simson
Beiträge: 2
Registriert: Mi, 16.08.2017 20:52

Import von Tabelle - Zeilenumbrüch erhalten

Beitrag von Simson » Mi, 16.08.2017 21:04

Liebe Leute,

ich versuche gerade Daten aus einer Calc-Tabelle in meine Datenbank zu importieren. Soweit klappt alles gut. Nur die Zeilenumbrüche sind alle hin. Kann ich die Tabelle so importieren, dass die Zeilenumbrüche erhalten bleiben?
Improtiert habe ich über "Einfügen" unter dem Reiter "Tabellen"

Version 4.1.0; Windows 7
Schon mal Danke.
Gruß,
Simson

RobertG
*******
Beiträge: 1629
Registriert: Fr, 13.04.2012 19:28
Kontaktdaten:

Re: Import von Tabelle - Zeilenumbrüch erhalten

Beitrag von RobertG » Do, 17.08.2017 10:53

Hallo Simson,

die Varchar-Felder können keine Zeilenumbrüche darstellen. Wenn Du stattdessen ein Memo-Feld (LONGVARCHAR) nimmst, dann ist dies zwar dazu in der Lage, zeigt aber leider auch die aus Calc importierten Zeilenumbrüche nicht an. Absätze sind daran erkennbar, dass Worte direkt hinter dem vorhergehenden Punkt stehen.

Gruß

Robert

RobertG
*******
Beiträge: 1629
Registriert: Fr, 13.04.2012 19:28
Kontaktdaten:

Re: Import von Tabelle - Zeilenumbrüch erhalten

Beitrag von RobertG » Fr, 18.08.2017 09:34

Hallo Simson,

ich habe jetzt noch etwas probiert und eine, wenn auch recht eigenwillige, Variante gefunden, um die Zeilenumbrüche von Calc in eine Base-Tabelle der internen Datenbank zu überführen.
1. Schritt: Exportiere von Calc die Daten in eine *.csv-Datei.
2. Schritt: Erstelle in Deiner *.odb-Datei, die auf einer internen HSQLDB beruht, eine Textdatei mit genau den Feldern, die die *.csv-Datei enthält.
3. Schritt: Kopiere anschließend diese Textdatei wieder und füge sie als normale Tabelle der HSQLDB-Datenbank ein.

Der 2. Schritt hier im Detail:
Du musst Dir klar sein, welche Eigenschaften die Felder Deiner exportierten *.csv-Datei haben. Dann wird über Extras > SQL eine Texttabelle für diese *.csv-Datei erstellt. Hier ein Beispielcode für so etwas:

Code: Alles auswählen

CREATE TEXT TABLE "csv" ("ID" INT PRIMARY KEY, "TextMitUmbruch" LONGVARCHAR, "TextOhneUmbruch" VARCHAR(100), "Datum" DATE);
Für die entsprechenden Datentypen schau einfach im Handbuch nach. Vermutlich wirst Du noch verschiedene Zahlentypen brauchen. Achte darauf, dass Datumswerte im für Datenbanken üblichen Format Jahr-Monat-Tag abgelegt sind. Der Dezimaltrenner für Dezimalzahlen muss ein Punkt sein.

Jetzt musst Du von der *.csv-Datei die erste Zeile entfernen, da die vermutlich die Spaltenbeschriftungen enthält. Steht da z.B. ID für das erste Feld, so ist das natürlich keine Integer-Zahl. Deswegen also die Spaltenbeschriftungen raus nehmen.

Code: Alles auswählen

SET TABLE "csv" SOURCE "Calctable.csv;encoding=UTF-8";
Mit diesem Befehl wird der Tabelle mit dem Namen "csv" die aus Calc exportierte "Calctable.csv" zugewiesen.

Jetzt musst Du über Ansicht > Tabellen aktualisieren die Tabelle sichtbar machen. Die ist für die GUI noch nicht zu sehen, da Du direkt über SQL mit der Datenbank kommuniziert hast. Wenn Du auf die Tabelle klickst, dann wirst Du Zeilenumbrüche in der LONGVARCHAR-Spalte "TextMitUmbruch" sehen.

Damit ist der 2. Schritt beendet. Jetzt nur noch die Tabelle kopieren (rechte Maustaste > kopieren) und unter neuem Namen wieder einfügen. Damit bekommst Du eine Tabelle, die in der HSQLDB mit Zeilenumbrüchen den ursprünglichen Inhalt Deiner Calc-Tabelle zeigt.

Theoretisch könntest Du auch die *.csv-Datei nutzen. Nur ist das von der Sicherheit der Daten nicht empfehlenswert. Die *.csv-Datei liegt ja weiterhin, für andere Programme offen zugänglich, dort, wo Du sie abgespeichert hast. Eine falsche Bearbeitung und die Daten sind futsch.

Gruß

Robert

Simson
Beiträge: 2
Registriert: Mi, 16.08.2017 20:52

Re: Import von Tabelle - Zeilenumbrüch erhalten

Beitrag von Simson » So, 20.08.2017 18:51

Lieber Robert,

vielen Dank. Das hat 1A funktioniert. Alleine wäre ich da im Leben nicht drauf gekommen. Allerdings konnten bei mir auch die VARCHAR-Felder Zeilenumbrüche speichern. Bei encoding habe ich "ansi" statt "UTF-8" angegeben (Windows).

Gruß,
Simson

RobertG
*******
Beiträge: 1629
Registriert: Fr, 13.04.2012 19:28
Kontaktdaten:

Re: Import von Tabelle - Zeilenumbrüch erhalten

Beitrag von RobertG » Mo, 21.08.2017 07:51

Hallo Simson,
Simson hat geschrieben:
So, 20.08.2017 18:51
Allerdings konnten bei mir auch die VARCHAR-Felder Zeilenumbrüche speichern.
Ja, das Speichern ist da nicht das Problem, nur die Darstellung in der Tabelle. Statt der Umbrüche wird einfach der folgende Absatz ohne Leerzeichen angehängt. Wenn Du Varchar-Felder mit Zeilenumbrüchen im Bericht siehst, dann sind die Umbrüche wieder da.

Gruß

Robert

Antworten

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 7 Gäste