Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.12.18;
Скачать: CL | DM;

Вниз

DBGridEh - как после update записи вернутся на нее же   Найти похожие ветки 

 
Explorer   (2005-11-01 11:49) [0]

Мастера!
На одной форме есть DBGrid и пытаюсь отредактировать одну из записей, вызвав другую форму, потом хочу вернутся на предыдущую форму с обновленными данными в DBGride  на эту же запись.
Подскажите, как реализовать данный сабж?


 
msguns ©   (2005-11-01 11:57) [1]

Перед перечиткой запоминать 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) [2]

Спозиционировать набор данных, на который смотрит твой грид, на нужную тебе запись.
Делается это с помощью метода Locate


 
Sergey13 ©   (2005-11-01 12:09) [3]

А зачем при апдейте уходить с нужной записи? Можно и без этого обойтись, если работать через датасет.


 
Explorer   (2005-11-01 12:56) [4]

>Sergey13
а по подробней?
работаю через AODDataSet


 
Sergey13 ©   (2005-11-01 13:01) [5]

2[4] Explorer   (01.11.05 12:56)
>а по подробней?
А чего подробнее то? Там (в АДО) нет что-ли Edit, Post?


 
Explorer   (2005-11-01 13:02) [6]

Точнее будет все же так :
DBGrid - через ADODATASET, а update делаю через ADOComand- вызов хранимой процедуры.

В гриде данные меняются, только сразу вываливается EOleException
"Не удается найти строку для обновления.Некоторые значения могут быть изменены со времени последнего чтения"


 
msguns ©   (2005-11-01 13:15) [7]

>Explorer   (01.11.05 13:02) [6]

Делай как в [1], а Сергея не слухай.. 13-й он :)))


 
Sergey13 ©   (2005-11-01 13:17) [8]

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:23) [9]

>Sergey13 ©   (01.11.05 13:17) [8]
>Папарашу без инсинуаций!!! 8-)

Иди учи бухгалтерию, двоешик ;))

Сори за офтоп


 
Sergey13 ©   (2005-11-01 13:28) [10]

2[9] msguns ©   (01.11.05 13:23)
>Иди учи бухгалтерию, двоешик ;))
Пачиму двоешник? Я хорошист! Но в другой области (в Ивановской). И в бухгалтерии я не двоешник, а самообразованец. 8-)

>Сори за офтоп
Присоединяюсь к сори.

2Explorer   (01.11.05 11:49)
А если серьезно, то не зачем перечитывать много раз то что у тебя уже есть. Это я к работе через датасет. Но кодом помочь не могу, ибо с АДО и мускулом не работал.


 
Ega23 ©   (2005-11-01 13:30) [11]


> Sergey13 ©   (01.11.05 13:28) [10]


ИМХО, твой путь - порочен. Я бы так не стал делать.
Впрочем, мы с тобой, помнится, уже неоднократно на эту тему спорили...   :о)


 
Sergey13 ©   (2005-11-01 13:32) [12]

2 [11] Ega23 ©   (01.11.05 13:30)
>ИМХО, твой путь - порочен. Я бы так не стал делать.
ИМХО, наоборот. Я делал так же как и ты, но одумался? 8-)



Страницы: 1 вся ветка

Текущий архив: 2005.12.18;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.037 c
3-1130776360
Tualan
2005-10-31 19:32
2005.12.18
Проектирование БД


14-1132775232
pound
2005-11-23 22:47
2005.12.18
проблема с потоком TThread в XP


2-1133269838
JTAG
2005-11-29 16:10
2005.12.18
Ув коллеги не будете ли вы так сказочно добры подсказать мне


2-1133494641
dust
2005-12-02 06:37
2005.12.18
сколько память моя програ в


14-1133096072
Kerk
2005-11-27 15:54
2005.12.18
Филиал конфы "Начинающим" у меня в мобильном...