![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
DBGridEh - как после update записи вернутся на нее же [D7, MySQL]
Explorer © (2005-11-01 11:49:00)Мастера!
На одной форме есть DBGrid и пытаюсь отредактировать одну из записей, вызвав другую форму, потом хочу вернутся на предыдущую форму с обновленными данными в DBGride на эту же запись.
Подскажите, как реализовать данный сабж?
Sergey13 (2005-11-01 13:32:00) [1]2 [11] Ega23 © (01.11.05 13:30)
>ИМХО, твой путь - порочен. Я бы так не стал делать.
ИМХО, наоборот. Я делал так же как и ты, но одумался? 8-)
Ega23 (2005-11-01 13:30:00) [2]
> Sergey13 © (01.11.05 13:28) [10]
ИМХО, твой путь - порочен. Я бы так не стал делать.
Впрочем, мы с тобой, помнится, уже неоднократно на эту тему спорили... :о)
Sergey13 (2005-11-01 13:28:00) [3]2[9] msguns © (01.11.05 13:23)
>Иди учи бухгалтерию, двоешик ;))
Пачиму двоешник? Я хорошист! Но в другой области (в Ивановской). И в бухгалтерии я не двоешник, а самообразованец. 8-)
>Сори за офтоп
Присоединяюсь к сори.
2Explorer (01.11.05 11:49)
А если серьезно, то не зачем перечитывать много раз то что у тебя уже есть. Это я к работе через датасет. Но кодом помочь не могу, ибо с АДО и мускулом не работал.
msguns (2005-11-01 13:23:00) [4]>Sergey13 © (01.11.05 13:17) [8]
>Папарашу без инсинуаций!!! 8-)
Иди учи бухгалтерию, двоешик ;))
Сори за офтоп
Sergey13 (2005-11-01 13:17:00) [5]2[6] Explorer (01.11.05 13:02)
Я с АДО не работал, но наверное и там можно сделать
Edit;
FieldByName('aaa').Value:='bla-bla';
Post;
Не так разве?
2[7] msguns © (01.11.05 13:15)
Папарашу без инсинуаций!!! 8-)
msguns (2005-11-01 13:15:00) [6]>Explorer (01.11.05 13:02) [6]
Делай как в [1], а Сергея не слухай.. 13-й он :)))
Explorer (2005-11-01 13:02:00) [7]Точнее будет все же так :
DBGrid - через ADODATASET, а update делаю через ADOComand- вызов хранимой процедуры.
В гриде данные меняются, только сразу вываливается EOleException
"Не удается найти строку для обновления.Некоторые значения могут быть изменены со времени последнего чтения"
Sergey13 (2005-11-01 13:01:00) [8]2[4] Explorer (01.11.05 12:56)
>а по подробней?
А чего подробнее то? Там (в АДО) нет что-ли Edit, Post?
Explorer (2005-11-01 12:56:00) [9]>Sergey13
а по подробней?
работаю через AODDataSet
Sergey13 (2005-11-01 12:09:00) [10]А зачем при апдейте уходить с нужной записи? Можно и без этого обойтись, если работать через датасет.
msguns (2005-11-01 11:57:00) [11]Перед перечиткой запоминать ID текущей записи (не букмарку !!!), после переоткрытия делать Locate:
Procedure TForm1.ReOpenGridData(Grid: TDBGrid);
begin
With Grid.dataSource.DataSet do
begin
DisableControls;
Tag := 0;
if RecordCount>0 then
Tag := Fields[0].AsInteger; // Запомнить в тэге ID тек.записи
Close;
Open;
Locate(Fields[0].FieldName,Tag,[]); // Установка в "старую" запись
Tag := 0; // Сбросить ID
EnableControls;
end;
end;
Ega23 (2005-11-01 11:57:00) [12]Спозиционировать набор данных, на который смотрит твой грид, на нужную тебе запись.
Делается это с помощью метода Locate