diub - Dipl.-Ing. Uwe Barth
 

CSVeditor - Online-Dokumentation


6 Datenbanken

CSVeditor liest aus und schreibt in verschiedene Datenbanken. Es ist jedoch wichtig zu verstehen, das CSVeditorkein Datenbankprogramm ist.

CSVeditor

  • arbeitet selbst ausschließlich mit Texten.
  • verwendet zum beim Zugriff auf Datenbanken .Net-eigene Datentypen, deren Eigenschaften oft nicht denen der originären Datentypen der Datenbank entsprechen!
  • unterstützt nicht alle Eigenschaften oder Möglichkeiten einer Datenbank.
  • Liest und schreibt immer eine ganze Tabelle!

Grundlegendes

Das Datenbankformat existiert nicht. Jeder Entwickler einer Datenbank hat eigene (gute) Ideen. Das führt aber dazu, das Datenbanken, genauer, die Datentypen, sich nicht Eins-zu-Eins aufeinander abbilden lassen. Beispiele:

  • Datentyp Boolen
    .Net: 2 Werte: TRUE, FALSE (tatsächlich ein eigener Typ)
    dBase 3: kann 3 Werte annehmen: T (True), F (False) ? (Unbestimmt)
    SQLite: existiert gar nicht, statt dessen wird ein INTEGER verwendet: 1 (True), 0 (False)
  • Datentyp String
    .Net: maximale Länge 32*1024-1 Zeichen, UTF16
    dBase: maximale Länge 254 Zeichen nach gewähltem ISO-Standard (erweiterter ASCII)
    SQLite: maximale Länge mehr als 32000 Zeichen im UTF (praktisch alle Zeichen dieser Welt, inklusive chinesischen Symbolen usw.)

6.1 dBase

CSVeditor schreibt die Datei im Format dBase 4 inkl. Memo-Felder.

Typ

.Net

dBase

Bemerkungen

Boolean

bool

LOGICAL

T (true), F (false), ? (unbestimmt)

BCD

Decimal

NUMERIC

als Text von insgesammt x Zeichen gespeichert, D davon für Nachkommastellen, Punkt als Dezimaltrennzeichen

Float

Single Precission

FLOAT

als Text von insgesammt x Zeichen gespeichert, D davon für Nachkommastellen, Punkt als Dezimaltrennzeichen

Text

String

CHAR

maximal 254 Zeichen

Memo

StringBuilder

Memo

in SQLite als CHAR

Tabelle 6.1: Zurdnung der Datentypen bei dBase

6.2 SQLite

CSVeditor schreibt SQLite Tabellen ohne den Datentyp BLOB (Binary Large Object).

Relationen werden ebenfalls nicht gelesen oder geschrieben!

Typ

.Net

SQLite

Bemerkung

Boolean

bool

existiert nicht

Vereinbarung: Standard: INTEGER Werte 0 (False) oder 1 (True)

BCD

Decimal

DECIMAL

siehe SQLite Dokumentation bzgl. Genauigkeit

Float

Single Precission

FLOAT

wird von .Net als Double zurückgelesen

Double

Double Precission

DOUBLE

Text

String

VARCHAR

Memo

StringBuilder

VARCHAR

nur wg. dBase Kompatibilität

Tabelle 6.2: Zurodnung der Datentypen bei SQLite