Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Probleme mit SQL-Datentypen (https://www.delphipraxis.net/45260-probleme-mit-sql-datentypen.html)

hsbc 3. Mai 2005 07:41

Datenbank: Firebird • Zugriff über: Delphi 7 Professional + Zeos-Lib.

Probleme mit SQL-Datentypen
 
Hallo allerseits,

Ich schreibe gerade ein Programm, mit welchem ich mehrere Tabellen mittels SQL für mySQL, MSSQL und Firebird anlegen möchte. Nach Möglichkeit möchte ich nur solche Datentype verwenden, welche auf allen drei Servern laufen.
Nun habe ich Probleme mit folgenden SQL-Datentypen:

DATE bzw. DATETIME:
DATE läuft nicht auf MSSQL
DATETIME läuft nicht auf Firebird
Gibt es hier eine Alternative, welche auf allen 3 genannten Servern läuft?

BOOL: läuft nicht auf MSSQL
Welche Datentype kann man alternativ hier verwenden, die wieder auf allen 3 genannten Servern läuft?

Für Hinweise wäre ich wieder sehr dankbar.

mfg
Herbert

shmia 3. Mai 2005 07:56

Re: Probleme mit SQL-Datentypen
 
Da gibt es nur wenige Möglichkeiten: du erfindest deine eigenen Datentypen und ersetzt diese zum Zeitpunkt
wenn die SQL Anweisung zur Anwendung kommen soll. z.B.
SQL-Code:
CREATE TABLE tabelle4711( datum $DATETIME$ NOT NULL)
Die Dollarzeichen helfen dir beim ersetzen.

Beim MS SQL kann man benutzerdefinierte Datentypen verwenden.
Wenn du einen benutzerdefinierte Datentyp einmal verwendet hast, kannst du ihn nie mehr ändern!!

Bernhard Geyer 3. Mai 2005 08:17

Re: Probleme mit SQL-Datentypen
 
Zitat:

Zitat von hsbc
BOOL: läuft nicht auf MSSQL

bit?

shmia 3. Mai 2005 08:25

Re: Probleme mit SQL-Datentypen
 
Zitat:

Zitat von Bernhard Geyer
Zitat:

Zitat von hsbc
BOOL: läuft nicht auf MSSQL

bit?

Ach ja....
der MS SQL Server kennt die Konstanten True und False nicht.
Also müssen Bedingungen mit wert=0 sowie wert<>0 formuliert werden.

hsbc 3. Mai 2005 08:38

Re: Probleme mit SQL-Datentypen
 
Gibt es eigentlich irgendwo eine Tabelle mit Gegenüberstellung der Datentypen der einzelnen Server?

Wo kann man überhaupt nachlesen, welche Datentypen welcher Server unterstützt? Ich finde da so nirgends eine befriedigende Antwort.

Ansonsten danke schon mal für die Beiträge. Habe befürchtet, dass ich da noch so einiges ändern werde müssen.

mfg
Herbert

Bernhard Geyer 3. Mai 2005 08:53

Re: Probleme mit SQL-Datentypen
 
Wenn Du für mehrer DBMS-Systeme eine Anwendung schreiben willst, so solltest Du folgendes befolgen:

- Nur Basistypen wie String/Blob/Integer verwenden
- Datumswerte in festen Format speichern (z.B. ISO-Datumsformat yyyy-mm-dd)
- Boolwerte als varchar(1) oder int definieren und entsprechen False festlegen (z.B. '0' bzw. 0)

freak4fun 3. Mai 2005 09:01

Re: Probleme mit SQL-Datentypen
 
Um zu erfahren, was es an Felder gibt, kannst du ja alle 3 Tabellen mal erstellen, um zu sehen, was möglich ist. :thumb:

Und dann eine Übersicht erstellen.

MfG
freak

Hansa 3. Mai 2005 10:52

Re: Probleme mit SQL-Datentypen
 
Zitat:

Zitat von Bernhard Geyer
Wenn Du für mehrere DBMS-Systeme eine Anwendung schreiben willst, so solltest Du folgendes befolgen:

- Nur Basistypen wie String/Blob/Integer verwenden
...

So ist es. Du mußt für so was den kleinsten gemeinsamen Nenner finden. Dies bedeutet allerdings IMHO : es wird ein schlechtes und lahmes Programm werden. Ich würde es aus weiteren Gründen nicht kaufen : eine von mir angeregte Änderung müßte für mehrere DBs geschrieben werden. Egal wie, es würde länger dauern und teurer werden als für mich nötig. So was will keiner. Eventuell kommst Du an einen Punkt, wo die Zieldatenbank nicht mehr mitmacht. D.h.: das Programm wird zu sich selber inkompatibel. usw. Der Ansatz sieht zwar vernünftig aus, im Endeffekt ist er es aber nicht. Den Enduser interessiert doch die Datenbank nicht die Bohne.

Jasocul 3. Mai 2005 11:06

Re: Probleme mit SQL-Datentypen
 
Zitat:

Zitat von Hansa
Den Enduser interessiert doch die Datenbank nicht die Bohne.

Es sei mal dahingestellt, ob das ganze sinnvoll ist.
Aber mich interessiert es sehr wohl welche DB dahinter steht. Wenn ich mehrere DB-Applikationen habe, will ich nicht auch noch mehrere DBs haben und administrieren.
Mir kommt jedenfalls keine MS-SQL-DB ins haus. So hat jeder seine Vorlieben. Das soll jetzt aber keine Diskussion werden, welche DB die beste ist. MS-SQL sollte nur ein Beispiel sein. Eine gute, intensiv genutzte DB braucht einen eigenen Server (Hardware). Soll ich für jede DB-Applikation einen eigenen DB-Server einrichten?
Hansa, bleib realistisch.

Hansa 3. Mai 2005 11:41

Re: Probleme mit SQL-Datentypen
 
Tja, wer weiß. Mir wäre es zumindest wichtiger zu wissen, daß das Programm macht, was es soll und ich schnellen Support habe. Ausreden, daß ein Update länger dauert, weil der MySql Teil noch immer nicht funktioniert zählen eben nicht. Weil es keine Sau interessiert. Was ist MySql ? Bzw. wer weiß das bzw. hat nur den Namen schon mal gehört ? Jasocul, ich rede jetzt vom Enduser und nicht von einem Programmierer. Meine Philosophie ist es, besser etwas komplett 100 % richtig zu machen, als 10 Sachen nur zum Teil. Wenn es nun heißt, das Programm benutzt Oracle, dann ist das eben so. Ist das Programm gut, dann wird es gekauft. Mit Sicherheit allerdings eben nicht wegen Oracle oder MySql.


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:17 Uhr.
Seite 1 von 2  1 2      

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