Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

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


Наверх

Титульная страница Поиск, карта сайта Написать письмо