Неожиданное поведение TTable и TDBGrid в Delphi XE2

У меня есть текстовое поле и сетка на форме.

Функциональные возможности: Когда я вписываю Emp ID (скажем, 1, 2, 3 и т. Д.) В текстовое поле, соответствующее этому Emp ID, Emp Name должно появляться в таблице из базы данных. Когда я снова ввожу еще один Emp ID, в следующем ряду в сетку будет вставлено еще одно имя Emp, и так далее ... столько раз, сколько я хочу, и нет. имя 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 перед привязкой каждый раз или что-то еще. Пожалуйста, помогите в этом.

Ответы на вопрос(1)

Ваш ответ на вопрос