Bonjour

(Puisque le serveur newsgroups.borland.com est dans les choux depuis plusieurs heures ("Connection refused", puis "502 Cannot connect to the NNTP server, connect error 10061"), je me permets de poster ici la question.)

J'aimerais utiliser le grid gratuit SMDBGrid, mais même après l'avoir connecté à un connecteur DB + dataset + datasource, il affiche "No data to display" à l'exécution. Il n'y pas de documentation et rien dans son groupe Yahoo. Pour info, les données sont correctement affichées dans la ListBox:

Voici le code:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
 
procedure TForm2.FormCreate(Sender: TObject);
var
  col, row : Integer;
begin
    with ASQLite3DB1 do begin
      DefaultDir := ExtractFileDir(Application.ExeName);
      Database := 'db.sqlite';
      Open;
 
      SQLite3_ExecSQL('CREATE TABLE IF NOT EXISTS products (id integer primary key, name TEXT)');
      SQLite3_ExecSQL('INSERT INTO products (id, name) VALUES (NULL,"test")');
    end;
 
    DataSource1.DataSet := ASQLite3Query1;
    SMDBGrid1.DataSource := DataSource1;
    //No trace of an .Open or .Activate method
 
    With ASQLite3Query1 do begin
      Connection := ASQLite3DB1;
 
      SQL.Text := Format('SELECT %s FROM products',['products.*']);
      Open;
 
      //Grid says "No data to display"
      //SMDBGrid1.Enabled := True;
      //SMDBGrid1.Update;
      //SMDBGrid1.Show;
      //SMDBGrid1.Refresh;
 
      First;
      while not Eof do begin
        for col := 0 to Fields.Count - 1 do begin
          ListBox1.Items.Add(Fields[col].AsString);
        end;
        Next;
      end;
 
      Close;
    end;
 
    ASQLite3DB1.Close;
 
end;
Pour info, j'ai aussi essayé de déplacer code dans l'évènement FormActivate() faisant l'hypothèse que c'était peut-être dû au fait que les objets BD sont sur une forme et que peut-être la forme n'étant pas étant créée... mais sans résultat.

Quelqu'un saurait-il ce qu'il faut faire?

Merci.