Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Zu MySQL Server verbinden (https://www.delphipraxis.net/92971-zu-mysql-server-verbinden.html)

XXcD 29. Mai 2007 17:20


Zu MySQL Server verbinden
 
Hallo,
ich müsste mit einem Programm eine Verbindung zu einem SQl Server herrstellen, jetzt habe ich da auch ein TuT gefunden. Mein Problem ist die ZeosLib lassen sich bei mir nicht installieren. Ich habe im moment die Delphi Version 2006. Also falls einer eine andere Möglichkeit kennt oder ein anderes Tutorial das wäre sehr gut.

Hier ist mal der Link zu dem TuT Link

DeddyH 29. Mai 2007 17:22

Re: Zu MySQL Server verbinden
 
Hallo, vielleicht ist bei Torry etwas für Dich dabei.

Bernhard Geyer 29. Mai 2007 17:23

Re: Zu MySQL Server verbinden
 
Und wieso läßt sie sich nicht installieren?

Ansonsten schau dir MyDAC an.

XXcD 29. Mai 2007 17:31

Re: Zu MySQL Server verbinden
 
der findet VCL30 nicht

Bernhard Geyer 29. Mai 2007 17:36

Re: Zu MySQL Server verbinden
 
Du mußt das zu deiner Delphi-Version passende Package-Datei öffnen! Delphi 2005 mußt die 9 in der Package-Datei haben.

XXcD 29. Mai 2007 17:50

Re: Zu MySQL Server verbinden
 
Könnte mir auch vielleicht einer sagen was ich beo sourceforge loaden muss, weil es gibt bei Zeoslib verschiedene Sachen.

mkinzler 29. Mai 2007 18:09

Re: Zu MySQL Server verbinden
 
http://zeosforum.net.ms/

Steve9825679 29. Mai 2007 18:17

Re: Zu MySQL Server verbinden
 
Hai,

ich verwende nur mehr die ADO.NET Connectors. Bei MySQL unter http://dev.mysql.com/downloads/connector/ downzuloaden. Entweder die ODBC-Variante oder die .NET-Variante.
Anschließend über die .NET-Komponenten einbinden. Bei allen hast du eine Connection- und eine Command-Klasse dabei. Über einen DataReader kannst du dann Daten Abfragen. Quasi Kinderspiel:

Delphi-Quellcode:
var conn : MySQL.Data.MySqlClient.MySqlConnection;
    cmd : MySQL.Data.MySqlClient.MySqlCommand;
    dr : MySQL.Data.MySqlClient.MySqlDataReader;
begin
  conn:=MySQL.Data.MySqlClient.MySqlConnection.Create('Host=localhost;User ID=...;Password=...;Database=...');
  cmd:=conn.CreateCommand;
  cmd.CommandText:='SELECT * FROM Tabelle'; //oder was auch immer...
  try
    conn.Open;
    dr:=cmd.ExecuteReader;
    if dr.HasRows then
      while dr.Read do
        //...
  finally
    //...
  end;
end;
Wenn du nur einen einzigen Wert aus der Abfrage wissen willst (Counterstand, ID eines Objekts, ...) kannst du dir den DataReader sogar sparen. Ebenso wenn du ein CREATE, INSERT, UPDATE oder so absetzt, wo kein Ergebnis zurückerwartet wird.


LGs Stefan

DeddyH 29. Mai 2007 18:33

Re: Zu MySQL Server verbinden
 
Wenn ich das richtig gesehen habe, geht es aber um Win32 ;)

XXcD 30. Mai 2007 11:51

Re: Zu MySQL Server verbinden
 
Also ich hab jetzt die Komponenten von ZeosLib instaliert bekommen. Aber wenn ich mit dem Programm meine Datenbank mit
SQL-Code:
select * from tabeelle;
abrufen will dann zeigt der mir an zu wenig Arbeitsspeicher. Hat da einer ne Lösung?

mkinzler 30. Mai 2007 11:56

Re: Zu MySQL Server verbinden
 
Wieviel Datensätze hat den die Tabelle?
Versuch mal die Datenmenge zu limitieren

DeddyH 30. Mai 2007 11:56

Re: Zu MySQL Server verbinden
 
Du willst Dir gleich die komplette Tabelle anzeigen lassen? Versuch es doch erstaml ein bisschen gemäßigter:
SQL-Code:
SELECT * FROM Tabelle LIMIT 10
Kommt da immer noch ein Fehler?

XXcD 30. Mai 2007 11:58

Re: Zu MySQL Server verbinden
 
Da ist eigentlich garnichts drin, ich habs einmal mit ner leeren Tabelle versucht und einmal mit einem Eintrag. Und immer kommt die Fehlermeldung zu wenig Arbeitsspeicher.

DeddyH 30. Mai 2007 11:59

Re: Zu MySQL Server verbinden
 
Zeig doch mal den Source.

XXcD 30. Mai 2007 11:59

Re: Zu MySQL Server verbinden
 
Kann das denn auch an der Tabelle liegen oder liegt das am Programm???

mkinzler 30. Mai 2007 12:00

Re: Zu MySQL Server verbinden
 
Wieviel Speicher hat dein Rechner den?
Welche Anwendung verbraucht so viel Ram (MySQL-Server, Delphi, Anwenderprogramm)?

XXcD 30. Mai 2007 12:02

Re: Zu MySQL Server verbinden
 
Ok hier ist der Source:
Delphi-Quellcode:
procedure TForm1.LinkKomponents;
begin
with ZConnection1 do begin
  Database := 'wow_game';
  HostName := 'localhost';
  Password := 'password';
  Port := 3306; //Oder der von euerem Provider angegebene
  Protocol := 'mysql';
  User := 'root';
end;
ZQuery1.Connection := ZConnection1;
DataSource1.DataSet := ZQuery1;
DBGrid1.DataSource := DataSource1;
DBEdit1.DataSource := DataSource1;
DBEdit1.DataField := 'entry';
DBEdit2.DataSource := DataSource1;
DBEdit2.DataField := 'entry';
end;

procedure TForm1.Btn_VerbClick(Sender: TObject);
begin
ZConnection1.Disconnect;
ZConnection1.Connect;
end;

procedure TForm1.Btn_TrennClick(Sender: TObject);
begin
ZConnection1.Disconnect;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
ZConnection1.Disconnect;
LinkKomponents;
end;

procedure TForm1.FormDestroy(Sender: TObject);
begin
ZConnection1.Disconnect;
end;

procedure TForm1.Btn_AbfrClick(Sender: TObject);
begin
ZQuery1.close;
ZQuery1.SQL:= memo1.Lines;
ZQuery1.Open;
ZQuery1.close;
end;

XXcD 30. Mai 2007 12:08

Re: Zu MySQL Server verbinden
 
Also ich hab 1gb drin und das muss reichen, die Tabelle hat drei Spalten und es sind 2 Einträge drin und es sind vielleicht 200 mb von dem Arbeitsspeicher verbraucht.

mkinzler 30. Mai 2007 12:09

Re: Zu MySQL Server verbinden
 
Und welche Komponente belegt soviel Speicher?

XXcD 30. Mai 2007 12:09

Re: Zu MySQL Server verbinden
 
Ja keine das ist es ja. Der Arbeitsspeicher ist ja frei. Ich hab keine ahnung woher der Fehler kommen soll.

XXcD 30. Mai 2007 12:16

Re: Zu MySQL Server verbinden
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hier gebe ich mal das Programm, geht da mal auf Verbinden und dann auf Abfragen.

mkinzler 30. Mai 2007 12:22

Re: Zu MySQL Server verbinden
 
Ohne Datenbank geht es wohl nicht.

XXcD 30. Mai 2007 12:30

Re: Zu MySQL Server verbinden
 
Ja die Daten hab ich doch drin. Einfach nur auf Verbinden dann auf Abfragen dann fragt ihr meine Datenbank ab. Und dann seht ihr den Fehler ja selber

DeddyH 30. Mai 2007 12:32

Re: Zu MySQL Server verbinden
 
Wie sollen wir denn auf Deinen Rechner kommen?

XXcD 30. Mai 2007 12:38

Re: Zu MySQL Server verbinden
 
Wieso meinen rechner, die Datenbank ist im www.

mkinzler 30. Mai 2007 12:38

Re: Zu MySQL Server verbinden
 
Dann ist aber der Servername localhost falsch

Catbytes 30. Mai 2007 12:54

Re: Zu MySQL Server verbinden
 
Zitat:

Zitat von XXcD
Wieso meinen rechner, die Datenbank ist im www.

Bei welchem Provider bist Du den? Die großen wie Strato und 1&1 erlauben von außen nämlich keinen Zugriff auf MySQL. Das muß dann per PHPMyAdmin gemacht werden. Bei anderen Providern bekommt man das IMHO auch nur gegen Nachfrage...

XXcD 30. Mai 2007 13:03

Re: Zu MySQL Server verbinden
 
Das liegt nicht daran ich habs ja auch schon intern versucht und da geht es auch nicht.

XXcD 30. Mai 2007 17:24

Re: Zu MySQL Server verbinden
 
Also ich hab den Fehler jetzt behoben, es lag an der Tabelle da war wohl irgendwas falsch.

Mein nächster Fehler ist jetzt wenn ich in SQL den Update Befehl ausführe bekomme ich die Fehlermeldung:

"Can not open a Resultset"

Kann man diese Fehlermeldung irgendwie weg bekommen oder abfangen??

DeddyH 30. Mai 2007 17:27

Re: Zu MySQL Server verbinden
 
Wie machst Du es denn? Mit Query.Open? Das wäre falsch, bei DML muss es ExecSQL heißen.

mkinzler 30. Mai 2007 17:28

Re: Zu MySQL Server verbinden
 
Bei DML-Statement wird kein Resultset zurückgeliefert. Deshalb .ExecSQL statt .Open

XXcD 30. Mai 2007 18:26

Re: Zu MySQL Server verbinden
 
Ok danke ich versuchs direkt mal.

XXcD 30. Mai 2007 18:29

Re: Zu MySQL Server verbinden
 
Liste der Anhänge anzeigen (Anzahl: 1)
LOL da kriege ich ne hefitge Fehlermeldung:

DeddyH 30. Mai 2007 18:34

Re: Zu MySQL Server verbinden
 
Was war denn das? Zeig mal den Source. :gruebel:

mkinzler 30. Mai 2007 18:35

Re: Zu MySQL Server verbinden
 
Wie sieht den der Code genau aus?

XXcD 30. Mai 2007 18:36

Re: Zu MySQL Server verbinden
 
einen moment mal ich schau gerade selber nach, weil ich glaube das liegt jetzt woanders dran.

XXcD 30. Mai 2007 18:42

Re: Zu MySQL Server verbinden
 
Ok Fehler gelöst ich hatte den SQL Code in einem Memo Feld und das hab ich auf Größe 1x1 Pixel gemacht und dadruch wurden mehrere Zeilen verwendet. Also jetzt sind alle Fehler gelöst. Danke für eure Hilfe.


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:34 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-2025 by Thomas Breitkreuz