Einzelnen Beitrag anzeigen

QuickAndDirty

Registriert seit: 13. Jan 2004
Ort: Hamm(Westf)
1.883 Beiträge
 
Delphi 12 Athens
 
#3

AW: Verknüpfung StringGrid und LiveBindings via Code

  Alt 14. Aug 2020, 12:49
Hallo zusammen,

ich möchte meine Datenbank via LiveBindings in einer StringGrid anzeigen lassen. Es handelt sich um eine FMX Anwendung, Datenbank ist MSSQL. Aber dazu möchte ich nicht den LiveBindings Designer benutzen, sondern via Code arbeiten.
Leider ist meines erachtens die Dokumentation dazu recht schlecht ausgearbeitet.

Folgendes habe ich dann zusammengeschustert:

Code:
procedure TForm_LiveBindings.CornerButton_Click(Sender: TObject);
var
  aLinkTableToDataSource: TLinkGridToDataSource;
  aConnection: TADOConnection;
  aQuery: TADOQuery;
  aBindSource: TBindSourceDB;
begin
  aConnection:= TADOConnection.Create(self);
  aQuery:= TADOQuery.Create(self);
  aBindSource:= TBindSourceDB.Create(self);
  aLinkTableToDataSource:= TLinkGridToDataSource.Create(self);

  // Hier wird aConnection aufgesetzt

  aQuery.Connection := aConnection;
  aQuery.SQL.Text := 'SELECT * FROM TestTable';
  aQuery.Active := True;

  aBindSource.DataSource.DataSet := aQuery;
  aBindSource.DataSource.AutoEdit := True;
  aBindSource.DataSource.Enabled := True;

  aLinkTableToDataSource.DataSource := aBindSource;
  aLinkTableToDataSource.GridControl := StringGrid1;

end;
Welches Ergebnis bekomme ich? Nun in der StringGrid werden mir alle Spalten der Datenbanktabelle angezeigt, genauer gesagt alle Header der Spalten. Der Inhalt fehlt aber total, jede Zeile bleibt leer. Wo genau bin ich also falsch abgebogen? Was habe ich vergessen? Jemand eine Idee?

Eine andere Frage: ist ein StringGrid ein vernünftiges Anzeigemedium oder bietet sich besseres an?

Vielen Dank an euch!
Es gibt Datenbank gitter. TDBGrid?
Ich weiß es gibt leute die livebindings toll finden. Ich musste nach dem ich mehrfach auf unzulänglichkeiten gestoßen bin, am Ende nach langer Entwicklungszeit alle Live bindings aus dem Projekt entfernern...und das war ziemlich schmerzvoll, denn es war auf eine MVVM Architektur aufgebaut und ohne Livebindings macht die keinen Sinn.

Also Du kannst das gerne mit Live bindings machen vielleicht klappts ja. Nur für mich sind die erstmal nichts mehr in Delphi, bis sie funktionieren.

Einfach über die Datenmenge iterieren füllt dein Stringgrid vermutlich genau so auf wie du es gerne hättest. Und dafür bleibt dir das rumgehampel mit den live bindings erspart.
Vor allem sind die Live bindings nicht an beiden enden "Live".
Andreas
Monads? Wtf are Monads?
  Mit Zitat antworten Zitat