cxGrid и обновление записей

nomorenames
Дата: 12.10.2006 12:30:58
Есть форма, на ней cxGrid, который привязан к датасету. Одно из полей boolean, отражается в колонке как CheckBox.
Надо менять значение (несколько значений) в колонке. Дальше хотелось бы по кнопке Apply изменить сразу все значения в базе методом Post. Однако, при переходе на другую запись, значения каждой записи изменяются самостоятельно. Как побороть?
nomorenames
Дата: 12.10.2006 13:38:35
Если это важно, то в качестве датасета используется MSQuery: TMSQuery от SDAC, а сервер MSSQL 2000
RayZ
Дата: 13.10.2006 03:38:55
Что значит самостоятельно?

на событие нажатия кнопки:
for i := 0 to TcxGridDBTableView(MyDBView).DataController.DataSet.RecordCount - 1 do begin
	TcxGridDBTableView(MyDBView).DataController.DataSet.FieldByName('MyField').Value := True;
	TcxGridDBTableView(MyDBView).DataController.DataSet.Next;
end;
MyDBView.DataController.UpdateItems(False); // обновить данные в гриде
nomorenames
Дата: 13.10.2006 09:18:38
Спасибо, все верно, но видно вопрос поставил не так.
Короче, есть справочник (см. картинку)
НАДО: Изменяем признак логического поля для нескольких строк, жмем кнопку "Применить", все измененные записи в базе обновляются.
Что получается сейчас:
Изменяем признак, переходим к следующей записи, метод POST применяется автоматически для одной записи.
sqllex
Дата: 13.10.2006 13:34:06
Посмотри demo CachedUpdates для MSDAC.

ЗЫ
Я себе в некоторых случаях делаю грид без привязки к MSQuery и данные записываю в строку с разделителями, которую передаю в ХП. ХП парсит строку и делает в одной транзакции сохранение, вставку, удаление.

Только мой ЗЫ подходит в простых случаях, когда парсинг не сказывается сильноо на производительности.

Вот пример:
			SET	@pos = charindex(@d, @edit_rows)
			WHILE @pos>0
			BEGIN
				SET @sql = substring(@edit_rows, 1, @pos-1 )
				SET @sql='INSERT INTO dr_demand values('+@edit_rows+')'
				EXEC (@sql)
				SET @edit_rows = substring(@edit_rows, @pos+1, len(@edit_rows))
				SET	@pos = charindex(@d, @edit_rows)
			END

nomorenames
Дата: 13.10.2006 14:08:55
Спасибо,
demo CachedUpdates помогло :)