|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
Текущее положение курсора в Table
Подскажите как узнать текущее положение курсора в ADOТable? Без использования визуальных компонентов. Номер или имя, без разницы.
Спасибо заранее. |
#2
|
||||
|
||||
ADOTable1.FieldByName('имя или номер').AsString;
Некоторые программисты настолько ленивы, что сразу пишут рабочий код. Если вас наказали ни за что - радуйтесь: вы ни в чем не виноваты. |
#3
|
|||
|
|||
Цитата:
Мне нужно обработать событие beforePost таблицы ADOTable и узнать на каком поле сейчас курсор. |
#4
|
||||
|
||||
Курсор стоит не на поле, а на записи в таблице.
Или мы разные курсоры имеем в виду? Некоторые программисты настолько ленивы, что сразу пишут рабочий код. Если вас наказали ни за что - радуйтесь: вы ни в чем не виноваты. |
#5
|
|||
|
|||
Еще более детализирую.
В общем мне нужно сделать что то типа журнала, в который будет заносится следующая информация: дата, имя изменяемого поля, значение до изменения, значение после изменения. Если бы был задействован один DBGrid то ничего сложного в принципе не было бы, но у меня их для этой таблицы 7 штук и около 70 DBEditov ... так что я решил, что зная текущее положение курсора в ADOTable, смогу узнать значение ДО изменения - обработав beforeEdit, а значение ПОСЛЕ обработав beforePost. Но уперся в то, что не могу узнать на каком поле в данный момент находится курсор в ADOTable |
#6
|
|||
|
|||
Не отрицаю что у меня могут отсутствовать какие то базовые знания на этот счет( ... я просто подумал, что если есть такие методы как Next и Prior, то должно же как то фиксироваться положение курсора в наборе данных? или иначе Nexn и Prior по отношению к чему?
|
#7
|
|||
|
|||
Делай на триггере в БД. Иначе застрелишься.
Еще можно, конечно, сделать на DataSet (ADOQuery), но там все-равно придется на каждом делать, даже если они все указывают на одну таблицу. Хотя можно попробовать написать универсальную процедуру. |
#8
|
|||
|
|||
Цитата:
|
#9
|
||||
|
||||
Вы не указали, что за базу вы используете, вот lmikle и предположил, что у вас SQL-сервер с поддержкой тригеров. Если его предположение верно, то лучше действительно это делать через тригер.Если нет поддержки тригеров, то можно сделать двумя способами. Сделать один универсальный обработчик для всех полей, который будет писать в журнал эту информацию(Но полезность данной операции у меня вызывает сомнения). Либо сделать хелпер для поля TAdoField который будет делать то-же самое, только обработчик событие не надо будет привязывать всякий раз при добавлении нового поля.
Жизнь такова какова она есть и больше никакова. Помогаю за спасибо. |