Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Datenabfrage von Delphi via MySQL (https://www.delphipraxis.net/151720-datenabfrage-von-delphi-via-mysql.html)

Mysterio08 29. Mai 2010 10:01

Datenbank: MySQL (Workbench) • Version: 5.1 • Zugriff über: MySQLConnection

Datenabfrage von Delphi via MySQL
 
Guten Morgen,

ich habe mit MySQL Workbench eine relationale Datenbank erstellt, Testdaten eingetragen und eine Verbindung in Delphi hergestellt - das klappt wunderbar.
Nun möchte ich jedoch auch auf meine Testdaten zugreifen, ich weiß aber nicht wie. Als ich mit Paradox gearbeitet habe, habe ich dafür immer die DBGrid-Komponente benutzt, das wollte ich jetzt auch machen, wenn das möglich ist. Diese Komponente habe ich also auf meiner Form, dann die Verbindung zu MySQL (TSQLConnection), eine TDatenSource und eine TSQLQuery (Eigenschaften wie SQLConnection etc. sind eingestellt). Die DataSource-Eigenschaft von SQLQuery ist auf DataSource1 gestellt, jetzt kann ich jedoch die DataSet-Eigenschaft von DataSource nicht einstellen, sodass es einen Bruch gibt und keine Daten angezeigt werden. Aber wenn ich die DataSet-Eigenschaft auf SQLQuery1 stelle, bekomme ich die Meldung "Diese Operation ist bei einer unidirektionalen Datenmenge nicht gestattet".
Ich habe also die falschen Komponenten verwendet, wenn ich das richtig sehe, nur welche brauche ich?

mfg.

Sir Rufo 29. Mai 2010 10:44

Re: Datenabfrage von Delphi via MySQL
 
DataSource bei SQLQuery1 wieder rausnehmen (da kommt in diesem fall nix rein)

Delphi-Quellcode:
DataSource1.DataSet := SQLQuery1;
Dann klappt das auch, denn DBGrid1 <= DataSource1 <= SQLQuery1

btw. das ist beim Zugriff auf Paradox auch so gewesen ;)

Mysterio08 29. Mai 2010 12:07

Re: Datenabfrage von Delphi via MySQL
 
Zitat:

Zitat von Sir Rufo
Dann klappt das auch, denn DBGrid1 <= DataSource1 <= SQLQuery1

Wenn ich das richtig verstanden habe: bei DBGrid die DataSource-Eigenschaft auf "DataSource1" stellen? Das klappt nämlich nicht, sobald ich dies tue, erscheint wieder die Meldung "Diese Operation ist bei einer unidirektionalen Datenmenge nicht gestattet".

Und sobald ich die DataSet-Eigenschaft von DataSource1 auf SQLQuery1 gestellt habe (natürlich als erstes) kann ich dann bei DataSource von SQLQuery nichts mehr einstellen.

DeddyH 29. Mai 2010 12:17

Re: Datenabfrage von Delphi via MySQL
 
Wenn ich mich recht entsinne, brauchst Du dazu ein ClientDataset. Näheres siehe hier.

Mysterio08 29. Mai 2010 12:47

Re: Datenabfrage von Delphi via MySQL
 
Ich habe die Komponenten TDataSetProvider und TClientDataSet mit eingebunden, hab aber gerade nicht die Zeit, die Verknüpfungen herzustellen, das werde ich später mal ausprobieren.
Funktioniert bei euch auch der Download-Link von dem aufgeführten Beispiel-Projekt nicht? Das hätte ich mir ja schon mal ganz gerne angeschaut...

DeddyH 29. Mai 2010 12:49

Re: Datenabfrage von Delphi via MySQL
 
Nicht auf den Link klicken, sondern den Text kopieren :zwinker: :http://cc.embarcadero.com/item/18306

Mysterio08 29. Mai 2010 17:01

Re: Datenabfrage von Delphi via MySQL
 
Ich habe mir das Beispielprojekt mal runtergeladen, aber es hilft mir nicht besonders weiter, weil ja erstens eine Table und keine SQL-Komponente verwendet wird und zweitens ich deswegen keine mit MySQL-Workbench erstellten Tabellen öffnen kann.
Ansonsten bin ich noch nicht weitergekommen.

Mysterio08 29. Mai 2010 18:18

Re: Datenabfrage von Delphi via MySQL
 
Liste der Anhänge anzeigen (Anzahl: 1)
Auf Delphi-Treff habe ich, wenn ich das richtig sehe, genau das gefunden, wonach ich suchte: DT-Tutorial.
Direkt auf der Einleitungs-Seite jedoch wird von MySQL-Direct-Units gesprochen und das Problem ist, dass ich diese nicht finde - der Link von Sourceforge führt mich zum Download einer mit Delphi erstellten Anwendung, mit welcher ich eine Verbindung zur Datenbank aufbauen und mir Tabellen anzeigen lassen kann, und auf der Seite von solutions.mysql.com finde ich keine konkrete Download-Datei, die diese Units enthalten könnte. Sind die Links nicht mehr aktuell, bzw. bekomme ich die Units irgendwoanders her? Google hat nicht richtig helfen können, außer die im Anhang mitgeschickte Unit, wobei das auch nicht funktioniert, weil dafür noch andere Units benötigt werden...

Neumann 29. Mai 2010 21:20

Re: Datenabfrage von Delphi via MySQL
 
Eine einfache Möglichkeit ist, über ODBC und ADO auf MYSQL zuzugreifen. Ist vielleicht von der Performance nicht das Optimum, aber relativ Stressfrei.

Liegt die MYSQL Datenbank auf einem Webserver, kann man z.B. eine Verbindung über Soap machen; dann also auf dem Client Soapconnection - Clientdataset - Datasource - DBGrid.

Auf dem Server brauch man dann entsprechende Routinen, die die Daten in dem speziellen XML-Format liefern, die das Clientdataset versteht; auf einem Windows Server z.B. die HTTPSRVR.dll. Auf Linux kann man das mit einem PHP-Script hinbekommen.

Gruß

Ralf

Mysterio08 30. Mai 2010 09:09

Re: Datenabfrage von Delphi via MySQL
 
Danke Neumann, das hört sich gut an. Ich weiß nur nicht recht, wie ich den Zugriff gestalten soll...
Wie ich gelesen habe, benutzt man ADO und ODBC parallel, weil sie sich gut ergänzen. Die ADO-Komponenten habe ich jetzt mit eingebunden (TADOConnection und TADOTable), aber wie funktioniert das mit ODBC? Hier habe ich was von MyDAC-Komponenten gelesen, benötige ich die, wenn ich ODBC verwende, bzw. benötige ich extra Komponenten dafür und wenn ja welche?

Und dann weiß ich immer noch nicht, wie ich die Verbindung herstellen tue...

Das ist alles so kompliziert


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