Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Probleme mit ZEOS und MySQL (Felder werden nicht gefunden) (https://www.delphipraxis.net/75672-probleme-mit-zeos-und-mysql-felder-werden-nicht-gefunden.html)

Andidreas 23. Aug 2006 10:39

Datenbank: MySQL • Version: 4 • Zugriff über: ZEOS

Probleme mit ZEOS und MySQL (Felder werden nicht gefunden)
 
aloha

ich mach gerade meine ersten geh versuche mit zeos ^^
und bin prompt auf die schnauze gefallen :D

also zu meinem problem...
die connection zur mysql db (lokal aufm rechner oder zum server) funktioniert problemlos...

wenn ich mir aber die daten aus der user tabele der mysql datenbank in einem dbgrid anzeigen lassen will krieg ich immer denn fehler das er das feld Host nicht findet :(

hier ist mein quellcode:

Delphi-Quellcode:
procedure TMain_Form.xpbtn_showuserClick(Sender: TObject);

var
blConnection : Boolean;

begin

  If ZConnection.Connected = False Then
  Begin
    blConnection := False;
    MessageDlg('Please Connect to the Database!', mtWarning, [mbOK], 0);
  End
  Else
  Begin
    blConnection := True;
  End;

  If blConnection = True Then
  Begin

    Try
      ZQuery.Active := False;
      DataSource.DataSet := nil;
      Application.ProcessMessages;
      ZQuery.SQL.Clear;

      ZQuery.SQL.Add('Select Host From User');

      DataSource.DataSet := ZQuery.DataSource.DataSet;

      ZQuery.Active := True;
      ZQuery.ExecSQL;

      DBGrid.Columns[0].Field := ZQuery.FieldByName('HOST');

    Except
      MessageDlg('Some Errors Occurs!', mtError, [mbOK], 0);
    End;

  End;

end;
hat jemand vielleicht ne ahnung was ich falsch gemacht hab???

mkinzler 23. Aug 2006 10:46

Re: Probleme mit ZEOS und MySQL (Felder werden nicht gefunde
 
Host <> HOST

MySQL ist casesensitive.

uwewo 23. Aug 2006 10:48

Re: Probleme mit ZEOS und MySQL (Felder werden nicht gefunde
 
Deine SQL Anweisung funktioniert nur mit der DB "MySQL"
nur dort ist ein Feld "User" hinterlegt.

Verbinde dich aber mit der DB "MySQL" bevor Du die SQL Anweisung ausführst.

Uwe

Andidreas 23. Aug 2006 10:58

Re: Probleme mit ZEOS und MySQL (Felder werden nicht gefunde
 
Liste der Anhänge anzeigen (Anzahl: 1)
also auch wenn ich im select stament und später im fieldbyname stament host groß geschrieben habe kommt der fehler immer noch, auch wenn ich im select stament "Select HOST From MySQL.User" angeb....

hier is mal noch ein screenshot von meiner form... wo die connection daten drinne stehen...

mkinzler 23. Aug 2006 11:00

Re: Probleme mit ZEOS und MySQL (Felder werden nicht gefunde
 
Wie ist denn das Feld in der Tabelle geschrieben?

Andidreas 23. Aug 2006 11:28

Re: Probleme mit ZEOS und MySQL (Felder werden nicht gefunde
 
wenn ich mit dem mysql query browser reinschau dann so "Host"

aber auch wenn ichs so schreibe bekomm ich meinen fehler :(

jetzt mal ne doofe frage...

brauch ich für eine db anwendung auch noch database???
weil ich hab bis jetzt nur ZConnection, ZQuery, DataSource, DBGrid als Komponenten auf meiner Form liegen!

mkinzler 23. Aug 2006 11:31

Re: Probleme mit ZEOS und MySQL (Felder werden nicht gefunde
 
Zitat:

brauch ich für eine db anwendung auch noch database???
TDatabase ist das Aqivalent zu ZConnection in Zeos, also nein.
Zitat:

wenn ich mit dem mysql query browser reinschau dann so "Host"
Dann mach mal
SQL-Code:
select * from ...
und schau dir an wie das Feld heißt.

Andidreas 23. Aug 2006 11:56

Re: Probleme mit ZEOS und MySQL (Felder werden nicht gefunde
 
hmmm glaub ich hab ein ganz anderes problem...

ich hab jetzt gerade folgendes probiert:

Delphi-Quellcode:
DBGrid.Columns[0].Field := ZQuery.Fields.FieldByNumber(1);
jetzt krieg ich keinen EDatabaseError mehr, aber ich hab keine daten im grid :(



edit:
ich hab hier jetzt mal mein komplette programm reingehängt, vielleicht erkennt ja so jemand meinen fehler....

mkinzler 23. Aug 2006 12:00

Re: Probleme mit ZEOS und MySQL (Felder werden nicht gefunde
 
Verknüpfe doch einfach mal dias Grid per DataSource mit dem Query, dann müßte er alle Spaltenbezeichnungen anzeigen, du kannst auch nur die Bezeichnungen holen wenn du when 1=0 dem Abfragestring hinzufügst.

uwewo 23. Aug 2006 12:16

Re: Probleme mit ZEOS und MySQL (Felder werden nicht gefunde
 
Irgenwie ignorierst Du meine Antwort.

Dein DS ist mit keiner DB verknüpft, MySQL weiß doch überhaupt nicht aus welcher DB die Daten ausgelesen werden sollen.

Deine DB = MySQL

dort werden die User abgelegt!!!!!!!!!!

Andidreas 23. Aug 2006 12:23

Re: Probleme mit ZEOS und MySQL (Felder werden nicht gefunde
 
Zitat:

Zitat von uwewo
Irgenwie ignorierst Du meine Antwort.

Dein DS ist mit keiner DB verknüpft, MySQL weiß doch überhaupt nicht aus welcher DB die Daten ausgelesen werden sollen.

Deine DB = MySQL

dort werden die User abgelegt!!!!!!!!!!

ich hab deine antwort nicht ignoriert!!!

folgendes hab ich schon ausprobiert

Delphi-Quellcode:
SQL.Add('Select Host From MySQL.User')
das hattest du doch gemeint oder?!

uwewo 23. Aug 2006 12:27

Re: Probleme mit ZEOS und MySQL (Felder werden nicht gefunde
 
Trage im Objectinspektor in Deiner Datasource unter Menüpunkt Datenbank MySQL ein.

Andidreas 23. Aug 2006 12:36

Re: Probleme mit ZEOS und MySQL (Felder werden nicht gefunde
 
Zitat:

Zitat von uwewo
Trage im Objectinspektor in Deiner Datasource unter Menüpunkt Datenbank MySQL ein.

wenn ich in meinem datasource unter dem menüpunkt datenbank (unter datanbank gibts nur dataset) MySQL eintrage, dann kompeliert der mir das nicht mehr mit dem fehler ungültiger eigenschaftswert!!!

Andidreas 23. Aug 2006 12:53

Re: Probleme mit ZEOS und MySQL (Felder werden nicht gefunde
 
Zitat:

Zitat von mkinzler
Verknüpfe doch einfach mal dias Grid per DataSource mit dem Query, dann müßte er alle Spaltenbezeichnungen anzeigen, du kannst auch nur die Bezeichnungen holen wenn du when 1=0 dem Abfragestring hinzufügst.

das hab ich grad übers programm probiert also:

Delphi-Quellcode:
DBGrid.DataSource.DataSet = ZQuery.DataSource.DataSet
aber des hatte auch keinen erfolg, ich hab keine daten angezeigt bekommen :(

mkinzler 23. Aug 2006 12:55

Re: Probleme mit ZEOS und MySQL (Felder werden nicht gefunde
 
Delphi-Quellcode:
DBGrid.DataSource.DataSet = ZQuery;
Aber besser direkt die DataSource setzen

Delphi-Quellcode:
DataSource.DataSet := ZQuery;

Andidreas 23. Aug 2006 13:27

Re: Probleme mit ZEOS und MySQL (Felder werden nicht gefunde
 
wenn ich das probier krieg ich jetzt die fehlermeldung :(

Zirkuläre Datenverbindungen sind nicht erlaubt

mkinzler 23. Aug 2006 13:33

Re: Probleme mit ZEOS und MySQL (Felder werden nicht gefunde
 
Auf was Weist Grid.Datasource? und auf was Datasource.Dataset ?

uwewo 23. Aug 2006 13:40

Re: Probleme mit ZEOS und MySQL (Felder werden nicht gefunde
 
Sorry hat lange gedauert, mußte erst die Jedis und Zeos in BDS2006 installieren.

Außerdem arbeite ich eigentlich mit den ganz alten Zeos Komponenten.

Habe mir den Quellcode angeschaut sieht eigentlich ganz gut aus aber....

DataSource.DataSet muß ZQuery sein, kannst Du direkt im Objektinspector machen.

vergiß die Zeile

DataSource1.DataSet := ZQuery.DataSource.DataSet;

Außerdem Dein DBGrid.FieldName muß Du auf Host einstellen, sonst weiß das Grid nicht was es anzeigen soll.

Dann funzt es.

mkinzler 23. Aug 2006 13:43

Re: Probleme mit ZEOS und MySQL (Felder werden nicht gefunde
 
Zitat:

Außerdem Dein DBGrid.FieldName muß Du auf Host einstellen, sonst weiß das Grid nicht was es anzeigen soll.
Am besten gar nix am Grid konfigurieren, dann zeigt er alle Felder der Datenmenge an.

Andidreas 23. Aug 2006 13:54

Re: Probleme mit ZEOS und MySQL (Felder werden nicht gefunde
 
Zitat:

Zitat von uwewo
Sorry hat lange gedauert, mußte erst die Jedis und Zeos in BDS2006 installieren.

Außerdem arbeite ich eigentlich mit den ganz alten Zeos Komponenten.

Habe mir den Quellcode angeschaut sieht eigentlich ganz gut aus aber....

DataSource.DataSet muß ZQuery sein, kannst Du direkt im Objektinspector machen.

vergiß die Zeile

DataSource1.DataSet := ZQuery.DataSource.DataSet;

Außerdem Dein DBGrid.FieldName muß Du auf Host einstellen, sonst weiß das Grid nicht was es anzeigen soll.

Dann funzt es.

wow danke erst mal für denn aufwand denn du dir gemacht hast...

also...
mein quellcode sieht gerade so aus...
Delphi-Quellcode:
procedure TMain_Form.xpbtn_showuserClick(Sender: TObject);

var
blConnection : Boolean;

begin

  If ZConnection.Connected = False Then
  Begin
    blConnection := False;
    MessageDlg('Please Connect to the Database!', mtWarning, [mbOK], 0);
  End
  Else
  Begin
    blConnection := True;
  End;

  If blConnection = True Then
  Begin

    Try
      ZQuery.Active := False;
      DataSource.DataSet := nil;
      Application.ProcessMessages;
      ZQuery.SQL.Clear;

      ZQuery.SQL.Add('Select Host From MySQL.User');

      ZQuery.Active := True;
      ZQuery.ExecSQL;

      DBGrid.Columns[0].Field := ZQuery.Fields.FieldByName('Host');

    Except
      MessageDlg(s, mtError, [mbOK], 0);
    End;

  End;

end;
hab also die zeile entfernt wo ich der datasource das zquery zuweisen wollte...
ich hab dann versucht im objektinspektor bei der datasource das zquery einzutragen...
da kam dann aber gleich die fehlermeldung von oben

Zitat:

Zitat von Andidreas
Zirkuläre Datenverbindungen sind nicht erlaubt

was die zuweisung des feldes im grid betrifft, dadurch das ich ja sag DBGrid.Columns[0].Field weiß er ja dann in welcher spalte ich meine daten haben will ;)

aber warum bei mir die eine fehlermeldung immer kommt mit zirkluärer datenverbinungen sind nicht erlaubt ist mir schleierhaft!!!

mkinzler 23. Aug 2006 13:59

Re: Probleme mit ZEOS und MySQL (Felder werden nicht gefunde
 
Die DataSource sollte auch wieder auf das Grid gesetzt werden
DataSource.DataSet := ZQuery;
@Andidreas: Zeig mal deinen Code

Andidreas 23. Aug 2006 14:08

Re: Probleme mit ZEOS und MySQL (Felder werden nicht gefunde
 
Liste der Anhänge anzeigen (Anzahl: 1)
@uwewo
könntest du mir vielleicht mal das projekt was du kompelliert hast zuschicken???
viell. per e-mail an a-ch.schulze@gmx.net vielleicht seh ich dann was ich falsch mache....


@mkinzler
ich hab hier jetzt nochmal meinen aktuellen source code dran gehängt...

uwewo 23. Aug 2006 14:08

Re: Probleme mit ZEOS und MySQL (Felder werden nicht gefunde
 
SQL-Code:
      ZQuery.SQL.Add('Select Host From User');
ist richtig

mkinzler 23. Aug 2006 14:20

Re: Probleme mit ZEOS und MySQL (Felder werden nicht gefunde
 
Delphi-Quellcode:
procedure TMain_Form.xpbtn_showuserClick(Sender: TObject);

var
blConnection : Boolean;

begin

  If ZConnection.Connected = False Then
  Begin
    blConnection := False;
    MessageDlg('Please Connect to the Database!', mtWarning, [mbOK], 0);
  End
  Else
  Begin
    blConnection := True;
  End;

  If blConnection = True Then
  Begin

    Try
      ZQuery.Active := False;
      DataSource.DataSet := ZQuery;
      Application.ProcessMessages;
      ZQuery.SQL.Clear;

      ZQuery.SQL.Add('Select Host From User'); // Statt .Clear
/Add auch .Text möglich.
      ZQuery.Active := True;
      //ZQuery.ExecSQL; //Hier liegt der Fehler
      ZQuery.Open; // <-- So muß es heißen.
      //DBGrid.Columns[0].Field := ZQuery.Fields.FieldByName('Host');
      DBGrid.DataSource := DataSource;
    Except
      MessageDlg('Some Errors Occurs!', mtError, [mbOK], 0);
    End;

  End;

end;

Andidreas 23. Aug 2006 14:21

Re: Probleme mit ZEOS und MySQL (Felder werden nicht gefunde
 
so es geht endlich :D

aber ich weiss echt nicht worans lag....

des einzige was ich gerade gemacht hab, war das ich alle komponenten nochmal vom formular geschmiessen hab (also zumindest das grid, die datasource und das query) und das ich alles nochmal neu mit einander verknüpft hab...

und jetzt funkts :)

@uwewo und mkinzler
vielen dank nochmal für eure hilfe :)

mkinzler 23. Aug 2006 14:27

Re: Probleme mit ZEOS und MySQL (Felder werden nicht gefunde
 
Sowie in deinem Code konnte es aber auch nicht funktionieren, da .ExecSQL keine Datenmenge zurückliefert.

Andidreas 23. Aug 2006 14:28

Re: Probleme mit ZEOS und MySQL (Felder werden nicht gefunde
 
hmm ja kann sein...

hier is mal mein neuer source code:

Delphi-Quellcode:
Try
      ZQuery.Active := False;
      ZQuery.SQL.Clear;
      Application.ProcessMessages;

      ZQuery.SQL.Add('Select Host From mysql.user');

      ZQuery.Active := True;

      DBGrid.Columns[0].Field := ZQuery.FieldByName('Host');

    Except
      MessageDlg('Some Erorrs Occurs', mtWarning, [mbOK], 0);

    End;


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