![]() |
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:
Ich hab meine Firebird Datenbank angebunden und die Tabellennamen erscheinen, wie sie sollen, im DBGrid0. Funktioniert also bis hier hin.
DataBase0(TIBDataBase), Transaction0(TIBTransaction), qry0(TIBQuery), DataSource0(TDataSource)
qry1(TIBQuery), DataSource1(TDataSource) DBGrid0, DBGrid1 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:
als DataSource die
qry1
Delphi-Quellcode:
gesetzt. Und bei
DataSource0
Delphi-Quellcode:
hab ich als DataSet die
DataSource1
Delphi-Quellcode:
gesetzt.
qry1
Dann hab ich ein OnCellClick auf
Delphi-Quellcode:
erzeugt. Ich weiß allerdings nicht wie ich eine unbekannte Zeile in DBGrid0 anspreche.
DBGrid0
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:
Ist das des Rätsels Lösung?
dataset.fieldbyname('feldname').asirgendwas
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)
|
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:
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.
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; So ist evtl. besser:
Delphi-Quellcode:
qry1.SQL.Text := 'SELECT * FROM ' + qry0.FieldByName('Tabellenname').AsString;
|
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:
Aber wie kann das denn sein?
Datenbank ist nicht zugewiesen
qry0.SQL.Text
Delphi-Quellcode:
zeigt mir alle Tabellen einer Firebird Datenbank an. Das klappt auch wunderbar.
qry0.SQL.Text := 'SELECT RDB$RELATION_NAME AS TABLENAMES FROM RDB$RELATIONS WHERE RDB$SYSTEM_FLAG=0';
Delphi-Quellcode:
Würde das nicht voraussetzen, dass das DBGrid weiß, welche Tabelle ich anklicke?
qry1.SQL.Text := 'SELECT * FROM ' + qry0.FieldByName('Tabellenname').AsString;
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.
|
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:
schreiben.
qry1.SQL.Text := 'SELECT * FROM ' + qry0.FieldByName('TABLENAMES').AsString;
|
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:
Ich hab jetzt 8 STunden delphi hinter mir. Ich penn jetzt eine Runde und versuch morgen diesen Fehler zu finden.
Datenbank ist nicht zugewiesen
Wenn ich fragen habe, melde ich mich nocheinmal. Noch einmal vielen Dank ihr zwei! Gruß Kratos |
AW: Tabellen Anzeige in DBGrid0 + Inhalt Tabellen in DBGrid1
Haben beide Queries auch die (gleiche) DB Connection zugewiesen?
|
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 01:01 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