フォームにテキストボックスとグリッドがあります。
機能: Emp ID (1、2、3 など) をテキスト ボックスに入力すると、その Emp ID に対応する Emp Name がデータベースからグリッドに入力されます。別の Emp ID を再度入力すると、別の Emp 名が次の行のグリッドに埋め込まれます...何度でも必要なだけです。このようにして、従業員名がグリッドの次の行に続く必要があります。
私はできる限り私の質問を説明したと思います。
私のアプローチ
これには、TTable、TDatasource、および TDBGrid を使用しています。テキスト ボックスに Emp ID を入力して Enter キーを押すと、データベースで Emp Name を確認し、その名前を TTable に追加します。次に、この TTable を TDatasource に割り当て、最後に TDatasource を TDBGrid に割り当てます。以下は、このためのコードです
Table1.Close;
//Create table for the first time
if not Table1.Exists then
begin
Table1.Close;
Table1.DatabaseName := 'databaseName';
Table1.TableType := ttParadox;
Table1.TableName := 'MyTable';
Table1.FieldDefs.Clear;
Table1.FieldDefs.Add('EmpName',ftString,40);
Table1.CreateTable;
Table1.Open;
end;
Table1.Open;
Table1.Append;
Table1.FieldByName('EmpName').AsString := EmpName; //EmpName is fetched from database
Table1.Post;
//Now assign this table to datasource
DataSource1.DataSet := Table1;
//Now assign this datasource to dbgrid
DBGrid1.DataSource := DataSource1;
私の問題:私の問題は、グリッドに表示されるレコードが異常に動作していることです。レコードは適切な順序で表示されず、互いに混在しています。グリッド内のデータ行が、以前に追加した順序で表示されないことを意味します。何が問題になる可能性があります。毎回バインドする前に、データソースまたは dbgrid を更新する必要がありますか。これを手伝ってください。