Announcement

Collapse
No announcement yet.

Datenübernahme aus txt-Dateien nach Interbase 6

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Datenübernahme aus txt-Dateien nach Interbase 6

    Ich bin Interbase-Einsteiger mit dBase-, Access- und Delphi-Background. Ich möchte den Inhalte einer Txt-Datei über Raw-Input nach dem Vorschlag im Intebase-Developer's Guide in eine Interbase-6-Tabelle übernehmen. Klappt auch. Nur mit den Umlauten haperts. Es ist zu ergänzen, dass auch im Windows-Editor die Umlaute der Quell-Datei nicht richtig angezeigt werden.
    Ich kann mir denken, dass das mit den Zeichensätzen zusammenhängt, mir fehlt aber offensichtlich Hintergrundwissen. Einiges Probieren brachte keinen Erfolg.
    Bei der Erstellung der Bestimmungs-Datenbank habe ich keinen Zeichensatz definiert. Mit welchem Zeichensatz werden deutsche Umlaute usw. in der Interbase-Tabelle und dann weiter in Delphi-Programmen richtig dargestellt?
    Ich wäre für Aufklärung über die Zusammenhänge - ggf. auch Literaturhinweise - dankbar.

    Mit freundlichem Gruss und Dank im Voraus für die Mühe

    Hans Grigull

  • #2
    Hallo,

    das Thema Daten-Export/Import ist eine im Vergleich zu anderen SQL-Datenbank grosse Schwachstelle des InterBase 6. Ich würde folgendes machen:

    1. Neue InterBase 6-Datenbank mit dem <b>Dialect 1</b> anlegen, da in diesem Fall die BDE für den Zugriff verwendet werden kann.

    2. Mit dem Delphi-Tool <b>Datenbankoberfläche</b> die Daten von der dBASE/Paradox/xyz-Tabelle in die InterBase-Datenbank kopieren. Die Tabellenstruktur wird damit gleich mit angelegt. Wenn das Tool <b>Data Pump</b> (Enterprise-Version von Delphi) zur Verfügung steht, kann man die vollständige alte Datenbank auf dem InterBase anlegen lassen.

    Dank BDE stehen dann auch die Fähigkeiten von LOCAL SQL zur Verfügung. Im folgenden Beispiel wird die InterBase-Tabelle "KUNDEN" mit den Datensätzen aus der Paradox-Tabelle "Adressen" gefüllt:
    <pre>
    INSERT INTO ":KonferenzWS_IB:KUNDENIMP" (KUNDENID, VORNAME, NACHNAME)
    SELECT p.KDNNR, p.N1, p.N2 FROM Adressen p
    </pre>
    Beachten Sie, dass diese Anweisung nur dann fehlerfrei ausgeführt wird, wenn im SQL-Explorer der BDE-Alias der Paradox-Tabelle Adressen geöffnet und aktiv ist. Nur dann "kennt" die BDE die Syntax von Local SQL. Starten Sie hingegen die Anweisung aus der geöffneten InterBase-Datenbank heraus, so beschwert sich die BDE beim ersten Doppelpunkt über einen Syntaxfehler.

    Wenn der Zugriff beim Datenimport über die BDE erfolgt, kann man auch den <b>ODBC-Treiber für Textdateien</b> verwenden, wobei dort der Zeichensatz (OEM vs. ANSI) per Radiobutton im DSN-Dialogfenster festgelegt werden kann. Somit kümmert sich der ODBC-Treiber für Textdateien für die richtige Zeichensatzkonvertierung.

    Für die deutschen Umlaute hat es sich bewährt, auf den Zeichensatz <b>ISO8859_1</b> (alias Win1252) zurückzugreifen. Beim Zugriff über IBX auf eine InterBase 6-Datenbank spielt das jedoch nur noch eine untergeordnete Rolle, wenn die Daten nur über diesen Weg eingefügt und ausgelesen werden.

    P.S: Die Details der unterschiedlichen Wege können in meinem Buch <i>Client/Server-Datenbankentwicklung mit Delphi</i> nachgelesen werden

    Comment

    Working...
    X