Пожалуйста, также укажите, используете ли вы TcxGridDBTableView или TcxGridTableView?
Я думаю, что я использую TcxGridTableView без поддержки db или TcxBandedGridTableView с
View.DataController.Values [Поле RecordIndex], поле [RecordIndex], полеfasttest.
Даже если у вас есть приложение db, вы можете загрузить не-db версию представления при инициализации, а затем обработать события DataController, чтобы обнаружить изменения данных и выполнить соответствующие команды SQL для обновления базы данных.
Вы можете заполнить представление следующим образом: 100
class procedure TForm1.FillView(const View: TcxGridBandedTableView; const Sql: string);
var
Reader: TMyOrmDataReader;
i: Integer;
begin
Assert(Assigned(View), 'View is not assigned parameter.');
with View.DataController do
begin
BeginFullUpdate;
try
Reader := TMyOrm.GetDataReader(SQL);
try
i := 0;
RecordCount := 50 * 1000; // make it something big in order to avoid constant resizing by 1
while Reader.Read do
begin
// Fill the view
Values[i, 0] := Reader.GetInt32(0);
Values[i, 1] := Reader.GetString(1);
Inc(i);
end;
RecordCount := i - 1;
finally
Reader.Free;
end;
finally
EndFullUpdate;
end;
end;
end;
И затем получить доступ к таким значениям, как:
View1.DataController.Values[View1.DataController.FocusedRecordIndex, View1Column1.Index].AsString