Weiter Zurück [Inhalt] Online Suche im Handbuch

55.6 Variablentypen unter ACCESS und MySQL

Bei der Adaption der ACCESS Datenbank an die Datentypen von MySQL müssen einige Dinge beachtet werden. Erstens gibt es Datentypen in ACCESS, die in MySQL sich mit dieser Bezeichnung so nicht wiederfinden. Andererseits scheint MySQL Datentypen zu unterstützen, die ACCESS wiederum nicht unterstützt. Schauen wir uns einmal die Datentypen von ACCESS 97 einmal an:

  1. TEXT ist ein Feld für Buchstaben und Zahlen, mit welchen aber nicht gerechnet werden kann. Beispiel: 02227/80768 oder Guido Stepken

  2. MEMO erlaubt den Eintrag von Texten mit bis zu 32.000 Buchstaben, Zahlen und Sonderzeichen sind nicht erlaubt.

  3. Zahl enthält nur Zahlen, mit denen man später auch rechnen können muß. Diese können 1,2,4,8 Byte lang sein.

  4. Datum/Zeit enthält Angaben über Datum oder Uhrzeit

  5. Währung ist ein Feld mit intern 8 Byte, in welchem die Währung auf 2 Stellen gerundet wird.

  6. Zähler kann pro Tabelle nur einmal vergeben werden und zählt automatisch hoch.

  7. JA/NEIN ist ein Bitfeld, oder auch boolsches Feld genannt, in welchem man z.B. Eigenschaften, wie Mitglied oder Nichtmitglied speichern kann.

  8. OLE Objekt kann eine Grafik, ein Bild oder auch irgendein binäres Objekt sein, welches bis zu 128 MByte groß sein darf.

Die folgende Tabelle enthält eine Liste der ANSI SQL-Datentypen und der dazu äquivalenten SQL-Datentypen von Microsoft ACCESS sowie die zulässigen Synonyme.

ANSI SQL Datentyp       Microsoft ACCESS Datentyp       Synonym

BIT, BIT VARYING        BINARY (Siehe Anmerkungen)      VARBINARY
Nicht unterstützt       BIT (JA/NEIN siehe Anmerkungen) BOOLEAN, LOGICAL,LOGICAL1, YESNO
Nicht unterstützt       BYTE    INTEGER1
Nicht unterstützt       COUNTER AUTOINCREMENT
Nicht unterstützt       CURRENCY (=Währung)             MONEY
DATE, TIME, TIMESTAMP   DATETIME (=DATUM/ZEIT)          DATE, TIME, TIMESTAMP
Nicht unterstützt       GUID    
DECIMAL                 Nicht unterstützt       
REAL                    SINGLE (=Zahl)                  FLOAT4, IEEESINGLE, REAL
DOUBLE PRECISION,FLOAT  DOUBLE (=Zahl)                  FLOAT, FLOAT8, IEEEDOUBLE, NUMBER, NUMERIC
SMALLINT                SHORT                           INTEGER2, SMALLINT
INTEGER                 LONG                            INT, INTEGER, INTEGER4
INTERVAL                Nicht unterstützt       
Nicht unterstützt       LONGBINARY (=OLE-Objekt)        GENERAL, OLEOBJECT
Nicht unterstützt       LONGTEXT (=MEMO)                LONGCHAR, MEMO, NOTE
CHARACTER,
CHARACTER VARYING       TEXT                            ALPHANUMERIC, CHAR, CHARACTER,STRING, VARCHAR
Nicht unterstützt       VALUE   

Anmerkungen :

Der ANSI SQL-Datentyp BIT entspricht nicht dem SQL-Datentyp BIT von Microsoft Jet (ACCESS), sondern dem Datentyp BINARY.

Es gibt kein ANSI SQL-Äquivalent für den SQL-Datentyp BIT in Microsoft Jet. Das reservierte Wort VALUE stellt keinen der vom Microsoft ACCESS 97 definierten Datentypen dar.

Leider ist auch Microsoft selber zu allen SQL Standards inkompatibel, sodaß man hier sich bei MySQL am besten selber sein Äquivalent sucht. Das Problem dabei ist, daß man einen Datentyp aussuchen muß, der von dem ODBC-Treiber auch korrekt interpretiert oder durchgereicht wird. Hierzu gibt es bei ODBC einige Parameter, die sich justieren lassen, damit bestimmte Datentypen automatisch konvertiert oder auch nicht konvertiert werden. Leider hat Microsoft je nach ACCESS Version hier abweichende Meinungen zu Datentypen, sodaß man kaum bestimmt sagen kann, welche Einstellungen bei ACCESS auch korrekt konvertiert werden. Korrekte Aussagen kann hier nur der Hersteller im Anschnitt über den ODBC-Treiber machen.

Insbesondere bei den Zahlen muß man sich rechtzeitig im Klaren sein, welche Werte abgespeichert werden, damit man die Datentypen nicht später auf mehr Byte erweitern muß. Mit Hilfe des Adminitrationstoolkits ist eine Änderung aber kein Problem mehr.

Für die Speicherung von BOOL´schen Datentypen (JA/NEIN) unter ACCESS eignet sich in MySQL der Datentyp ENUM


Weiter Zurück [Inhalt] Online Suche im Handbuch