Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Feldtyp von BDE nach MySQL...geht das? (https://www.delphipraxis.net/56795-feldtyp-von-bde-nach-mysql-geht-das.html)

torud 11. Nov 2005 11:02

Datenbank: BDE • Zugriff über: BDE

Feldtyp von BDE nach MySQL...geht das?
 
Hallo Wissende!

Ich bin gerade dabei ein kleines Tool zu schreiben, mit dem ich meine DBF-Datenbanken in eine SQL-Tabelle schreiben kann.

Dazu ist es erforderlich, dass ich den Feldtyp der DBF-DB auslese und in den CREATE-Table-Abschnitt übersetzt unterbringe. Nun ist es aber so, dass bei SQL zum einen VarChar immer mit einem Anzahlparameter befüttert werden muss und zum anderen ih nicht genau weiss, welche anderen Feldtypen nach SQL überhaupt transformiert werden könnten.

Wie kann ich also herausbekommen, ob und wenn wieviele Stellen ein Integer-Feld, oder ein Stringfeld vorgabetechnisch haben??

Und wie kann ich die anderen Feldtypen nach SQL-Feldtypen "übersetzen"?

Ich habe es bis jetzt so gemacht, aber das WAHRE ist "noch" es nicht.

Delphi-Quellcode:
function ReturnSQLTyp(T : TFieldType):string;
begin
  case T of
    ftString      : Result := 'VARCHAR(255)';
    ftFloat       : Result := 'FLOAT(5)';
    ftCurrency    : Result := 'VARCHAR(50)';
    ftMemo        : Result := 'TEXT';
    ftBlob        : Result := 'BLOB';
    ftDate        : Result := 'DATE';
    ftDateTime    : Result := 'DATETIME';
    ftTime        : Result := 'TIME';
    ftSmallInt    : Result := 'SMALLINT';
    ftInteger     : Result := 'INT';
    ftBoolean     : Result := 'Boolean';
    ftBytes       : Result := 'Bytes';
    ftWord        : Result := 'Word';
    ftTimeStamp   : Result := 'TIMESTAMP';
    ftVariant     : Result := 'Variant';
    ftBCD         : Result := 'BCD';
    ftVarBytes    : Result := 'VarBytes';
    ftAutoInc     : Result := 'INT NOT NULL AUTOINCREMENT';
    ftGraphic     : Result := 'Graphic';
    ftFmtMemo     : Result := 'FmtMemo';
    ftParadoxOle  : Result := 'ParadoxOle';
    ftDBaseOle    : Result := 'DBaseOle';
    ftTypedBinary : Result := 'TypedBinary';
    ftCursor      : Result := 'Cursor';
    ftFixedChar   : Result := 'CHAR(200)';
    ftWideString  : Result := 'WideString';
    ftLargeint    : Result := 'BIGINT';
    else Result   := 'Feldtyp unbekannt';
  end;
end;
Für Tipps und/oder Hinweise bin ich dankbar!

RavenIV 11. Nov 2005 12:16

Re: Feldtyp von BDE nach MySQL...geht das?
 
ich hab auch mal eine BDE in mySQL "übersetzen" müssen.
und habe es auch "manuell" gemacht mit einer Übersetzungsliste.

was besseres ist mir nicht eingefallen...

torud 11. Nov 2005 12:48

Re: Feldtyp von BDE nach MySQL...geht das?
 
hm, könntest Du mir denn mal Deine Liste zukommen lassen, damit ich vielleicht wenigstens einen Vergleich habe???

Mein Problem ist ja auch noch das Auslesen der Feldgrösse. Man kann ja auch in DBF-DB´s die Feldgrösse vorgeben. Kann man sie auch auslesen?

RavenIV 11. Nov 2005 12:54

Re: Feldtyp von BDE nach MySQL...geht das?
 
Zitat:

Zitat von torud
hm, könntest Du mir denn mal Deine Liste zukommen lassen, damit ich vielleicht wenigstens einen Vergleich habe???

habe meine liste mit deiner verglichen, es ist nichts anderst.
ausser, dass deine liste ausführlicher ist, weil ich nicht alle Datentypen gebraucht habe.

Zitat:

Mein Problem ist ja auch noch das Auslesen der Feldgrösse. Man kann ja auch in DBF-DB´s die Feldgrösse vorgeben. Kann man sie auch auslesen?
ich wusste damals, wie gross die Felder werden dürfen und habe das entsprechend in mySQL angepasst.

torud 11. Nov 2005 13:06

Re: Feldtyp von BDE nach MySQL...geht das?
 
Ok, danke trotzdem.

Ich werde es einfach mal mit

Delphi-Quellcode:
Fields.Fields[i].Size
probieren! Vielleicht reicht das ja schon...


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:04 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz