вставка новых записей в 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