Mam taki kod:
procedure TForm1.Button1Click(Sender: TObject);
var i, x, y: Integer;
begin
SQLDataSet1.Open;
y := 0;
for i := 1 to SQLDataSet1.RecordCount do
begin
x := 1;
inc(y);
StringGrid1.Cells[x, y] := SQLDataSet1.FieldValues['id'];
inc(x);
StringGrid1.Cells[x, y] := SQLDataSet1.FieldValues['imie'];
inc(x);
StringGrid1.Cells[x, y] := SQLDataSet1.FieldValues['nazwisko'];
inc(x);
StringGrid1.Cells[x, y] := SQLDataSet1.FieldValues['tel'];
inc(x);
SQLDataSet1.Next;
end;
SQLDataSet1.Close;
end;
Działa bez zarzutów, ale tylko dla zapytanie wyglądającego tak:
SELECT * FROM notes;
Moje pytanie brzmi: jak to uzależnić od indeksu z CommandText w SQLDataSet, bo kiedy zmienię zapytanie na:
SELECT imie FROM notes;
to otrzymuję komunikat z błędem (nie pamiętam co tam dokładnie pisze, w każdym razie coś o 'id', że chyba go nie znaleziono...)? Czy muszę zrobić kilka procedur, każda do innego zapytania i później z zapytania SQL za pomocą np. Copy wyciągnąć potrzebne pola czy jest na to jakiś inny, krótszy sposób?