SQLで取り出したデータをTStringGridに吐き出すには


Mina  2004-08-03 01:22:50  No: 10176

TADOQueryのSQLでデータを抽出して、TStringGridに吐き出す
方法がわかりません(><)
わかる人いますかぁ??
超初心者発言かしら(--;)


HOta  2004-08-03 01:57:11  No: 10177

TDBGridを使うのなら、

TADOQuery -> TDataSource -> TDBGrid
で表示します。
TDataSourceのDataSetをADOQuery
TDBGridのDataSourceを指定します。
TADOQueryのActiveをTrueにすると表示します。

TStringGridなら、
列毎に
  StringGrid1.Cells[ACol, ARow] := ADOQuery1.Fields[1].asString;
でレコードセットの終わりまで表示します。


Mina  2004-08-03 02:35:37  No: 10178

Hotaさんへ

StringGrid1.Cells[ACol, ARow] := ADOQuery1.Fields[1].asString;

のFields[1]はテーブルのどの部分を指すのですか??


HOta  2004-08-03 02:49:31  No: 10179

TDatasetにあるTFielsです。
TADOQueryはTDataSetから派生しています。
DelphiのHelpは少々解りにくいですが、
調べてみましょう。
解らない場合にまた質問して下さい。


猫が好き  2004-08-07 02:23:35  No: 10180

もう終わってますか?
私は、TADODataSetを常用しています。
DBGridは使ったこと無いのでわかりませんが
StringGridを使用しています。

Fields[].asStringでは後で分かり辛いので
FieldByName['フィールド名'].saStringを使っています。

//---------------------------------------------------//
ADODataSet.CommandText := 'SQL文';
ADODataSet.Active := True;
If ADODataSet.Recordset.RecordCount > 0 then
begin
  for i := 0 to ADODataSet.RecordCount - 1 do
  begin
    StringGrid1.Cells[0,i+1] := IntToStr(ADODataSet.FieldByName('コード').asInteger);
    StringGrid1.Cells[1,i+1] := ADODataSet.FieldByName('名前').AsString;
    StringGrid1.RowCount := StringGrid1.RowCount + 1;
  end;
end;
ADODataSet.Close;
StringGrid1.RowCount := StringGrid1.RowCount - 1;
//-----------------------------------------------------//


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加