![]() |
Datenbank: MSSQL • Version: 12 • Zugriff über: FIREDAC
Crossplattform Software Entwicklung MSSQL / MYSQL
wir haben dieses einfache SQL statement unter MSSQL in Verwendung
Delphi-Quellcode:
CREATE TABLE TableName (
RecordIndex int IDENTITY PRIMARY KEY, ..... ... ) leider versteht MYSQL nicht was IDENTITY PRIMARY KEY bedeutet, gibt es hier eine Lösung welche beide Datenbank Systeme verstehen ? Den Datentyp image haben wir bei MSSQL bisher immer verwendet, vermutlich gibt es hier eine Lösung für beide DB Server im DB Typ : BLOB, Ich würde am liebsten MSSQL auf der Windows seite mit ADO verwenden, auf der UNIX Seite dann Firedac mit MYSQL oder SQlite ..... - bin bereit nur die Schnittmenge von auf jedem DB Server unterstützen SQL CMD#s dafür zu verwenden |
AW: Crossplattform Software Entwicklung MSSQL / MYSQL
Suchmaschine + Datentypen MSSQL MySQL liefert mir u. a. dashier:
![]() Wie auf die Datenbanken zugegriffen wird, ob ADO oder FireDac oder ... sollte egal sein. Dein "einiziges" Problem ist, die Unterschiede zwischen dem SQL-Standard zu kompensieren. Ist so ähnlich wie der Unterschied zwischen einem Sprungbrett: Je höher desto platsch. Was ist der Unterschied zwischen SQL: Je kompatibler desto unwahrscheinlich. Ok: Ist vielleicht etwas übertrieben. |
AW: Crossplattform Software Entwicklung MSSQL / MYSQL
Da wirdst wohl nur mit ORMs und Änhlichem einen gemeinsamen Konsens finden können.
Die Objekte sind überall gleich, aber wie dann die Verbindung zur DB passiert, das kann überall total unterschiedlich sein. |
AW: Crossplattform Software Entwicklung MSSQL / MYSQL
Eigentlich sollte FireDAC das korrekt umsetzen, wenn du das CreateTable von TFDTable verwendest. Die Felder und Indizes müssen dann vorher in den FieldDefs und IndexDefs angelegt werden.
|
AW: Crossplattform Software Entwicklung MSSQL / MYSQL
Das sind sicher nicht die einzigen Probleme, wenn Du MSSQL wie mySQL betreiben willst.
Die Anpassung der Datenmodellscripte wird vermutlich insgesamt auch nur ein Problembereich sein. Warum willst Du mySQL einsetzen? |
AW: Crossplattform Software Entwicklung MSSQL / MYSQL
IDENTITY ist unter MySQL AUTO_INCREMENT.
Normalerweise finde ich die Syntax von MSSQL ziemlich gut, aber was sie sich bei dem Namen IDENTITY gedacht haben... Zitat:
|
AW: Crossplattform Software Entwicklung MSSQL / MYSQL
Die Art eine eindeutige ID für eine Spalte zu erzeugen, ist ja nicht das problematischste, hier kann man zur Initialisierung unterschiedliche Scripte nehmen und fertig.
Spannender ist dann bspw. der Zugriff auf die neueste ID, weil man sie in einem abhängigen Datensatz als FK nutzen muss. Hier liegen glaub ich schon eher Welten zwischen mySQL und MS SQL. Außer in V8 hat mySQL diese Last Used Pfriemelei mal bereinigt. Vielleicht können beide Sequenzen? Da ich keines der Systeme nutze, weiß ich es nicht. Sequencen wären jedenfalls ein Quasi Standard. (Keine Ahnung was ANSI SQL da gern hätte) Aber noch mal meine Frage, warum mySQL oder welches Cross aus Cross Plattform soll es denn sein? (Jeder nur ein Kreuz bitte!) |
AW: Crossplattform Software Entwicklung MSSQL / MYSQL
Wieso AutoInc-Felder.
Ich würde auf GUID setzen? Keine Probleme mit Replikation und auch Füllen mit Testdaten für Regressionstest einfacher zu hanbhaben. |
AW: Crossplattform Software Entwicklung MSSQL / MYSQL
Evtl. in beiden systemen auf AUTO INCREMENT verzichten und in beiden System auf einen Trigger setzte...
Allerdings weiß ich nicht wie incompatibel PL-SQL ist... Insgesammt ist SQL so beschissen incompatibel gehalten, dass du vermutlich auf eine Factory setzen musst die deine SQLS Statements für verschiedene SQL-Server compatibel erstellt. TFDTable müsste intern auch so eine Factory benutzen. Oder du machst es so, dass der SQL-Servertyp teil der einstellungen ist und du erzeigst im Code je nach einstellung SQL-Statements für den passenden Server...So mache ich das weitestgehend... Nur an einer stelle nicht...in der Mobilen App...da setze ich auch auf den kleinsten gemeinsamen nenner von Firebird, MSSQL und MariaDB |
AW: Crossplattform Software Entwicklung MSSQL / MYSQL
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:01 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz