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

Вниз

КАК УЗНАТЬ, КАКАЯ ИЗ ЗАПИСЕЙ РЕДАКТИРУЕТСЯ В DBGrid?   Найти похожие ветки 

 
-=DeMoH=- ©   (2003-05-04 12:41) [0]

Проблема состоит в следующем: мне нужно узнавать номер записи, которую в данный момент редактирует пользователь в DBGrid"е, чтобы корректно вызывать метод ADOTable1AfterPost (он выполняет определенные действия после изменения какого-либо поля в БД).


 
MsGuns ©   (2003-05-04 12:45) [1]

В DBGrid`е всегда редактируется текущая запись КУРСОРА НД, номер которой относительно КУРСОРА можно узнать в RecNo (правда, не уверен, есть ли такое Property у компонент ADO).


 
-=DeMoH=- ©   (2003-05-04 12:52) [2]

А где это? (Нужно просто каким-либо способом занести в каку-нибудь переменную номер записи)


 
jack128 ©   (2003-05-04 12:57) [3]

нет такого понятия, как номер записи. По крайней мере в реляционных БД. Можешь записывать primary key, если он есть конечно


 
MsGuns ©   (2003-05-04 13:02) [4]

interfase
...

var
Fio: String;
BhDay: TDate;
rcn: integer;

implementation
...

procedure Form1.Button1Click(Sender: TObject);
// Забрать в переменные значения ТЕКУЩЕЙ записи НД (грида)
begin
with ADOTable1 do
begin
Fio := FileByName("FIO").AsString;
BhDay := FileByName("BIRTHDAY").AsDateTime;
rcn := RecNo;
end;
end;


 
-=DeMoH=- ©   (2003-05-04 13:03) [5]

У компонента DataSource есть такие понятия как DataSource1.DataSet.MoveBy(...);
DataSource1.DataSet.First;
DataSource1.DataSet.Next;
DataSource1.DataSet...
и так далее.
Сначала я думал, что после изменения поля в DBGrid изменяется и значение DataSet, но как показала практика, при вызове следующего кода

DataSource1.DataSet.Edit;
...
DataSource1.DataSet.Post;

постоянно редактируется ПЕРВАЯ запись, а мне нужно редактировать именно ту запись, изменения в которой сделал пользователь с помощью DBGrid !!!


 
JibSkeart ©   (2003-05-04 13:15) [6]

MsGuns © (04.05.03 12:45)
Есть


 
MsGuns ©   (2003-05-04 13:20) [7]

>=DeMoH=- © (04.05.03 13:03)
>У компонента DataSource есть такие понятия как DataSource1.DataSet.MoveBy
Методы MoveBy и прочие перечисленные есть не у DataSource, а у "папы" многих датасетов (в т.ч. и TADOTable) - TDataSet

Если узер редактирует запись в гриде, не надо давать никаких Edit,- Grid+DataSource сами переводят НД в режим редактирования.
Точно также измененная запись и постируется автоматически, стоит узеру перейти с измененной записи в другую. Методы Edit/Insert/Append/Post/Cancel используются для программных модификаций датасетов (например, если узер вводит данные не в грид, а в контролы типа TEdit, а потом нажимает кнопку, по которой прога заносит изменения в НД, но не в грид). Некоторые из них могут использоваться также в обработчиках событий НД (After/BeforeXXXX)



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

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

Наверх




Память: 0.48 MB
Время: 0.017 c
1-70233
nevalex
2003-05-11 19:48
2003.05.22
Как добавить событие в TrackBar1?


14-70453
aga
2003-05-01 16:59
2003.05.22
Ftp-server


14-70471
MasterA
2003-05-03 20:16
2003.05.22
Создание Help


1-70221
Гость
2003-05-11 07:29
2003.05.22
Функции


3-70136
AlexGof
2003-04-30 12:35
2003.05.22
Отсоединенный набор в MS SQL