вставка новых записей в cxgrid

morhellene
Дата: 03.05.2011 11:58:25
при изменении значений в столбце на '1'.

cxGrid1DBTableView1.DataController.BeginFullUpdate();

for i:=0 to k-1 do
begin
cxGrid1DBTableView1.DataController.SetValue(cxGrid1DBTableView1.Controller.SelectedRows[i].RecordIndex,0,1);
end;
cxGrid1DBTableView1.DataController.EndFullUpdate();

в гриде меняет моментально . как закоммитить изменения в базе? если писать

OraQuery1.ApplyUpdates;
OraQuery1.CommitUpdates;

то изменения внесенные циклом пропадают
Сергей Козинцев
Дата: 03.05.2011 12:11:35
morhellene,

а если поставить DBNavigator и просто подтверждать транзакцию?
RENaissance
Дата: 03.05.2011 12:12:41
morhellene, потому что данные надо править на уровне датасета, а не грида. Читайте справку.
morhellene
Дата: 03.05.2011 12:24:12
Сергей Козинцев,

транзакции то нет, я просто поменяла значения в ТэйблВью
morhellene
Дата: 03.05.2011 12:25:07
RENaissance,

я правила на уровне датасета, слишком долго на 7 тыс записей.
вот так делала

for i:=1 to k do
begin
cxGrid1DBTableView1svc_type.EditValue := setVal;
cxGrid1DBTableView1.DataController.GotoNext;
end;
Сергей Козинцев
Дата: 03.05.2011 12:28:36
morhellene,

все равно чтобы изменения произошли в самой базе данных необходима транзакция
morhellene
Дата: 03.05.2011 12:30:56
Сергей Козинцев,

Да, это так.
вот ее я и хочу начать, чтобы изменения, которые видно в тэйбл вью после SetValue попали в базу. Если конешн это возможно.
Сергей Козинцев
Дата: 03.05.2011 12:35:45
morhellene,

я делал постоянно так: в IBDataSet генерируеться SQL на изменение ,удаление и т.д. все автоматически,нужно только выбрать ключевое поле и поля которые будут обновляться,а для удобства ставиться навигатор и все дела
Сергей Козинцев
Дата: 03.05.2011 12:45:37
вот видеопример создания клиента БД там есть то что вам нужноdbClient.swf