Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 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.008 c
1-70326
Viktor
2003-05-07 11:51
2003.05.22
Модальные формы и данные


7-70551
gsv_
2003-03-24 12:58
2003.05.22
исползовать информацию из другого окна


14-70459
Шоломицкий
2003-04-30 19:24
2003.05.22
Вам ещё не надоели эти ИМХО, САБЖ и т.д.


3-70186
Separator
2003-04-28 10:51
2003.05.22
и BLOB


8-70403
Друмлин
2003-02-09 20:31
2003.05.22
есть ли такая шутка?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский