Форум: "Базы";
Текущий архив: 2003.05.22;
Скачать: [xml.tar.bz2];
ВнизКАК УЗНАТЬ, КАКАЯ ИЗ ЗАПИСЕЙ РЕДАКТИРУЕТСЯ В 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;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.007 c