Неожиданное поведение 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 перед привязкой каждый раз или что-то еще. Пожалуйста, помогите в этом.