Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi [MySQL] Besser Schnittstelle mit Anwendungen (https://www.delphipraxis.net/130543-%5Bmysql%5D-besser-schnittstelle-mit-anwendungen.html)

Yheeky 10. Mär 2009 09:54

Datenbank: MySQL • Zugriff über: Win32 Anwendung

[MySQL] Besser Schnittstelle mit Anwendungen
 
Hi,

ich hatte schonmal vor längerer Zeit gefragt, ob es sowas wie LINQ (unter .NET) für Delphi gibt. Damals unter dem Aspekt "Sicherheit", welcher ja aber natürlich nicht gegeben ist bei einer Client-Anwendung. LINQ macht also nur unter ASP.NET Sinn...
Jetzt würde mich mal interessieren, ob es dennoch Funktionen gibt, die einem die Arbeit mit einer MySQL Schnittstelle einfacher machen. Z.B. erstelle ich in meiner Anwendung ein eigenes Objekt:
TAuto mit den Eigenschaften Modell, Marke und Baujahr. Eine Tabelle in der Datenbank enthält genau diese Daten...gibt es denn dann eine Funktion, wie ich die Objekte direkt in die Datenbank schieben kann bzw. sie von dieser holen kann? Das geht mit LINQ ja...im Moment mache ich es so, dass ich für jedes Objekt einzelne Funktionen schreibe, die das für mich machen, aber der Aufwand ist schon recht groß. Allein aus diesem Grund wäre es schon ein großer Vorteil, auf .NET umzusteigen, wenn das mit Delphi nicht gehen sollte...

Vielleicht hat ja jemand schonmal ein ähnliches Problem gehabt und kann mit mir ein bisschen drüber diskutieren ;)

mkinzler 10. Mär 2009 10:18

Re: [MySQL] Besser Schnittstelle mit Anwendungen
 
Du bräuchtset ein Persistenz FrameWork/ O/R-Mapper ( Bold, InstantObjects, tiOPF)

Phoenix 10. Mär 2009 10:32

Re: [MySQL] Besser Schnittstelle mit Anwendungen
 
Eine etwas einfachere Methode wäre, dass Du Dir diese Schreib- und Lesefunktionen aus der Tabelle generierst.

Ich gehe davon aus, dass Du diese Methoden immer nach Schema F erzeugst, das bietet sich dann geradezu an, dies zu automatisieren. Du kannst ja mittels SQL die Tabellenbeschreibung abfragen, da hast Du alle nötigen Informationen zur Hand.

Yheeky 10. Mär 2009 10:38

Re: [MySQL] Besser Schnittstelle mit Anwendungen
 
Zitat:

Zitat von Phoenix
Eine etwas einfachere Methode wäre, dass Du Dir diese Schreib- und Lesefunktionen aus der Tabelle generierst.

Ich gehe davon aus, dass Du diese Methoden immer nach Schema F erzeugst, das bietet sich dann geradezu an, dies zu automatisieren. Du kannst ja mittels SQL die Tabellenbeschreibung abfragen, da hast Du alle nötigen Informationen zur Hand.

Der Ansatz klingt interessant, aber ich verstehe ihn nicht ganz *gg*. Kannst du ihn vielleicht etwas genauer ausführen?
Im Moment mache ich das wirklich so, dass die Funktionen vom Aufbau her sich wirklich sehr ähneln...

Phoenix 10. Mär 2009 10:50

Re: [MySQL] Besser Schnittstelle mit Anwendungen
 
Na, die Idee ist folgende:

Du erstellst ein Template mit Platzhaltern für Deine Funktion.
Mittels SQL (show tables, DESCRIBE tabellenname) kannst Du alle informationen über alle spalten in der Tabelle (Name, datentyp etc.) abfragen.

Mittels dieser Informationen kannst Du dann in der Vorlage für Deine Funktion die Spaltennamen und Datentypen durch eine Einfache textersetzung ausfüllen und hinten raus kommt dann z.B. für jede Tabelle eine Unit im Quellcode, die die für die aktuelle Tabelle generierte Funktionen enthält. Die packst Du in Dein Projekt und gut ist...

Yheeky 10. Mär 2009 11:22

Re: [MySQL] Besser Schnittstelle mit Anwendungen
 
Ich hatte vergessen zu erwähnen, dass ich aufgrund der Sicherheit die Funktionen in einer externen PHP-Datei aufrufe. Die Selects stehen nicht in meiner Client-Anwendung. Du meintest doch das Zusammenbasteln des SELECT, UPDATE oder DELETE oder?

Phoenix 10. Mär 2009 11:25

Re: [MySQL] Besser Schnittstelle mit Anwendungen
 
Zitat:

Zitat von Yheeky
Sprache: Delphi (Win32)
Datenbank: MySQL, Zugriff über: Win32 Anwendung

Zitat:

Zitat von Yheeky
Ich hatte vergessen zu erwähnen, dass ich aufgrund der Sicherheit die Funktionen in einer externen PHP-Datei aufrufe.

:gruebel:

Aber von mir aus kannst Du auch den wie auch immer gearteten Aufruf in eine PHP Datei generieren...

Yheeky 10. Mär 2009 12:17

Re: [MySQL] Besser Schnittstelle mit Anwendungen
 
Ja, hab ich mich vielleicht unglücklich ausgedrückt. Ich spreche über meine Win32-Anwendung eine PHP-Datei an, die dann mit der DB kommuniziert. Meine Anwendung wertet dann aus.
Danke für deinen Ansatz, dem werde ich mal nachgehen...


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:25 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