掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
SQL検索で、値は白紙なのに、StringGridにデータベース一覧が渡されてしまう (ID:35374)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
いつも拝見させて貰っています。 前回は大変お世話なりました。 無事組み込み完了しました^^。 本題なのですが、 SQL検索でQueryは白紙なのに、それを読み込んだStringGridに、データベースの一覧が表示されてしまいます。 QueryのSQL文で'管理NO'を検索し、結果をStringGridで手動で表示させています。 問題は、検索結果が0の時、何故か、データベース一覧の最初の行だけ一件が、表示されてしまいます。 試しに行数を手動で増やしてみたところ、2件目3件目のデータも表示されていました。 検索でデータがヒットしないと、自動的にデータベース一覧がStringGrid1に渡されて表示されてしまうようです。 Queryを監視してみると、Query1の中身は白紙です。 Queryは白紙なので、for文は一回しか実行されず、一覧の一行目だけが表示されるようです。 Queryが白紙の時に、StringGridもきちんと白紙にさせる方法は無いでしょうか? どなたかアドバイスをいただけないでしょうか? よろしくお願いしますm(__)m。 環境は、VistaSp1,Delphi3.1Proです。 以下はそのコードです。 ※長いので、細かいフィールド名は若干省きました。 procedure TForm1.Button1Click(Sender: TObject); var i,i2:integer; begin i := 1; i2 := 1; StringGrid1.ColCount := 5; StringGrid1.RowCount := i +1; Query1.SQL.Text := 'SELECT * FROM 退去立会表 WHERE 管理NO="' + SpinEdit1.Text + '";'; Query1.Open; for i := 0 to Query1.RecordCount - 1 do begin StringGrid1.Cells[1,0] := 'ページ'; StringGrid1.Cells[2,0] := 'NO'; StringGrid1.Cells[3,0] := '→'; StringGrid1.Cells[4,0] := '物件名'; StringGrid1.Cells[18,0] := 'DBNO'; StringGrid1.Cells[0,i+1] := inttostr(i2); StringGrid1.Cells[1,i+1] := Query1.FieldByName('ページ').AsString; StringGrid1.Cells[2,i+1] := Query1.FieldByName('NO').AsString; StringGrid1.Cells[3,i+1] := Query1.FieldByName('物件名フラグ').AsString; StringGrid1.Cells[4,i+1] := Query1.FieldByName('物件名').AsString; StringGrid1.Cells[18,i+1] := Query1.FieldByName('DBNO').AsString; StringGrid1.RowCount := StringGrid1.RowCount + 1; Query1.Next; i2 := i2 +1 end; if Query1.FieldByName('DBNO').asstring <> '' then StringGrid1.RowCount := StringGrid1.RowCount - 1; end;
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.