Search code examples
delphifirebirddbgridzeos

how to display to a dbgrid my query in this code?


hello is it possible for this code to display to a tdbgrid the search results in a list like style? (e.g. if i searched for john, all the data conataining john on a certain field will be displayed to the tdbgrid)

procedure Tspcb.dccolbtnClick(Sender: TObject);
begin
  zdctable.First;
  while not zdctable.EOF do
  begin
     if (zdctable.FieldByName('Collector').AsString = dcedit.Text)
     then begin
        cn.Caption := zdctable.FieldByName('Client_Name').AsString;
        col.Caption := zdctable.FieldByName('Collector').AsString;
        pay.Caption := zdctable.FieldByName('Daily_Payment').AsString;
        date.Caption := zdctable.FieldByName('Date').AsString;
        ddate.Caption := zdctable.FieldByName('Due_Date').AsString;
        id.Caption := zdctable.FieldByName('ID').AsString;
        la.Caption := zdctable.FieldByName('Loan').AsString;
        tc.Caption := zdctable.FieldByName('Total_Collectibles').AsString;
     end;

     ShowMessage('click ok for next profile');
     zdctable.Next;
  end;
end;

Solution

  • Just add a datasource, set property dataset to your dataset zdctable, add a DBgrid to your form and set the property datasource to the datasource.

    The only piece of code you will need is in the OnchangeEvent of dcedit

    procedure TForm3.dceditChange(Sender: TObject);
    begin
       zdctable.FilterOptions:=[foCaseInsensitive]; // if wished
       zdctable.Filtered := Length(dcEdit.Text) > 0;
       if zdctable.Filtered then
          // zdctable.Filter := 'Collector like ' + QuotedStr('%' + dcEdit.Text + '%') 
          zdctable.Filter := 'Collector like ' + QuotedStr('*' + dcEdit.Text + '*') // Zeos- Syntax
       else  zdctable.Filter := '';
    end;