Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Tabellen Anzeige in DBGrid0 + Inhalt Tabellen in DBGrid1 (https://www.delphipraxis.net/202378-tabellen-anzeige-dbgrid0-inhalt-tabellen-dbgrid1.html)

Kratos 28. Okt 2019 14:40

Delphi-Version: 10.2 Tokyo

Tabellen Anzeige in DBGrid0 + Inhalt Tabellen in DBGrid1
 
Moin Leute,
*delphi-Newbie*

ich hab jetzt lange das Forum durchsucht, konnte aber zu meinem Problem nichts finden. Vielleicht bin ich auch nur blind^^

Nun denn,
ich hab
Code:
DataBase0(TIBDataBase), Transaction0(TIBTransaction), qry0(TIBQuery), DataSource0(TDataSource)
                                                      qry1(TIBQuery), DataSource1(TDataSource)
DBGrid0, DBGrid1
Ich hab meine Firebird Datenbank angebunden und die Tabellennamen erscheinen, wie sie sollen, im DBGrid0. Funktioniert also bis hier hin.
Nun möchte ich auf eine der angezeigten Tabellen in DBGrid0 klicken und die Datensätze der geklickten Tabelle sollen in DBGrid1 erscheinen.
Jedoch weiß ich nicht so recht wie das gehen soll.
Ich hab bei
Delphi-Quellcode:
qry1
als DataSource die
Delphi-Quellcode:
DataSource0
gesetzt. Und bei
Delphi-Quellcode:
DataSource1
hab ich als DataSet die
Delphi-Quellcode:
qry1
gesetzt.
Dann hab ich ein OnCellClick auf
Delphi-Quellcode:
DBGrid0
erzeugt. Ich weiß allerdings nicht wie ich eine unbekannte Zeile in DBGrid0 anspreche.

Vermutlich ist das Problem sehr einfach zu lösen.
Ich hoffe ihr versteh meine Problemerläuterung und könnt mir weiterhelfen^^

Gru0
Kratos


EDIT:
Delphi-Quellcode:
dataset.fieldbyname('feldname').asirgendwas
Ist das des Rätsels Lösung?
Ich probiere es gleich mal.

EDIT2:
Ich scheine immer noch etwas falsch zu machen.
Code:
procedure TForm5.DBGrid0CellClick(Column: TColumn);
begin
    qry0.Active := False;
    qry1.Active := False;
    qry1.SQL.Text := 'SELECT * FROM ' + qry1.Fields.Fields[index].Value;
    qry1.Active := True;
end;
Delphi-Quellcode:
Fehler: qry1: Listenindex außerhalb des gültigen Bereichs (0)

Jumpy 28. Okt 2019 15:22

AW: Tabellen Anzeige in DBGrid0 + Inhalt Tabellen in DBGrid1
 
qry0 liefert ja die Tabellennamen, deshalb darfst du sie schon mal nicht schließen!
und dann musst du natürlich den Tabellennamen aus qry0 auch nehmen und nicht den aus 1:

Delphi-Quellcode:
procedure TForm5.DBGrid0CellClick(Column: TColumn);
begin
    //qry0.Active := False;
    qry1.Active := False;
    qry1.SQL.Text := 'SELECT * FROM ' + qry0.Fields.Fields[index].Value;
    qry1.Active := True;
end;
Ich ging mal davon aus das index das richtige Feld meint? Wenn du das SQL-Statement von qry0 zeigen würdest könnte man es genauer sagen.
So ist evtl. besser:

Delphi-Quellcode:
qry1.SQL.Text := 'SELECT * FROM ' + qry0.FieldByName('Tabellenname').AsString;

Kratos 28. Okt 2019 15:33

AW: Tabellen Anzeige in DBGrid0 + Inhalt Tabellen in DBGrid1
 
Vielen Dank für deine Hilfe!

Die zwei Schusselfehler habe ich beseitigt.
Allerdings kommt jetzt folgende Fehlermeldung:
Delphi-Quellcode:
Datenbank ist nicht zugewiesen
Aber wie kann das denn sein?


qry0.SQL.Text
Delphi-Quellcode:
qry0.SQL.Text := 'SELECT RDB$RELATION_NAME AS TABLENAMES FROM RDB$RELATIONS WHERE RDB$SYSTEM_FLAG=0';
zeigt mir alle Tabellen einer Firebird Datenbank an. Das klappt auch wunderbar.

Delphi-Quellcode:
qry1.SQL.Text := 'SELECT * FROM ' + qry0.FieldByName('Tabellenname').AsString;
Würde das nicht voraussetzen, dass das DBGrid weiß, welche Tabelle ich anklicke?
btw, hab ich das natürlich versucht und 'Tabellenname' durch einen Tabellenname aus meiner Datenbank ausgetauscht.
Leider kam jedes mal folgende Fehlermeldung:
Delphi-Quellcode:
qry0: Das Feld 'blablabla' wurde nicht gefunden.

Uwe Raabe 28. Okt 2019 15:55

AW: Tabellen Anzeige in DBGrid0 + Inhalt Tabellen in DBGrid1
 
Wenn du das Feld in der qry0 schon explizit TABLENAMES nennst, dann musst du auch
Delphi-Quellcode:
qry1.SQL.Text := 'SELECT * FROM ' + qry0.FieldByName('TABLENAMES').AsString;
schreiben.

Kratos 28. Okt 2019 16:02

AW: Tabellen Anzeige in DBGrid0 + Inhalt Tabellen in DBGrid1
 
@Uwe Raabe

Dankeschön für deine Hilfe. Deine Erklärung ist durchaus logisch ^^
Ich bekomme leider immernoch diese Fehlermeldung:
Delphi-Quellcode:
Datenbank ist nicht zugewiesen
Ich hab jetzt 8 STunden delphi hinter mir. Ich penn jetzt eine Runde und versuch morgen diesen Fehler zu finden.
Wenn ich fragen habe, melde ich mich nocheinmal.


Noch einmal vielen Dank ihr zwei!

Gruß
Kratos

jobo 28. Okt 2019 16:33

AW: Tabellen Anzeige in DBGrid0 + Inhalt Tabellen in DBGrid1
 
Haben beide Queries auch die (gleiche) DB Connection zugewiesen?

Kratos 29. Okt 2019 07:18

AW: Tabellen Anzeige in DBGrid0 + Inhalt Tabellen in DBGrid1
 
Moin Leute,

@jobo
Ja, das war richtig zugewiesen. Ich Trollo hatte aber dem DBGrid1 die falsche DataSource zugewiesen. :D
Jetzt klappt alles so wie ich das möchte.

Ich bedanke mich nochmal bei allen für die Unterstützung!

Viele Grüße
Kratos


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