Главная страница
    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.007 c
7-70535
Calm
2003-03-24 16:19
2003.05.22
Как узнать запущен ли процесс с заданным именем?


14-70517
Igor Mish
2003-05-01 20:39
2003.05.22
Чтение строки из файла.txt


6-70416
Dimedrol
2003-03-24 11:35
2003.05.22
Как встроить полноценный Internet Explorer в программу ?


3-70102
e-master
2003-04-27 18:36
2003.05.22
Сетевое приложение под Interbase


14-70503
snoup
2003-05-02 22:29
2003.05.22
Люди помогите пожалуйста с TNMPop3!!!





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский