Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Базы данных
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 21.04.2011, 16:11
BenDjoys BenDjoys вне форума
Прохожий
 
Регистрация: 21.04.2011
Сообщения: 5
Репутация: 10
Вопрос Текущее положение курсора в Table

Подскажите как узнать текущее положение курсора в ADOТable? Без использования визуальных компонентов. Номер или имя, без разницы.

Спасибо заранее.
Ответить с цитированием
  #2  
Старый 21.04.2011, 16:43
Аватар для Aristarh Dark
Aristarh Dark Aristarh Dark вне форума
Модератор
 
Регистрация: 07.10.2005
Адрес: Москва
Сообщения: 2,906
Версия Delphi: Delphi XE
Репутация: выкл
По умолчанию

ADOTable1.FieldByName('имя или номер').AsString;
__________________
Некоторые программисты настолько ленивы, что сразу пишут рабочий код.

Если вас наказали ни за что - радуйтесь: вы ни в чем не виноваты.
Ответить с цитированием
  #3  
Старый 21.04.2011, 17:31
BenDjoys BenDjoys вне форума
Прохожий
 
Регистрация: 21.04.2011
Сообщения: 5
Репутация: 10
По умолчанию

Цитата:
Сообщение от Aristarh Dark
ADOTable1.FieldByName('имя или номер').AsString;
Тут нужно знать имя или номер. Наверное я не правильно задал вопрос.
Мне нужно обработать событие beforePost таблицы ADOTable и узнать на каком поле сейчас курсор.
Ответить с цитированием
  #4  
Старый 21.04.2011, 17:45
Аватар для Aristarh Dark
Aristarh Dark Aristarh Dark вне форума
Модератор
 
Регистрация: 07.10.2005
Адрес: Москва
Сообщения: 2,906
Версия Delphi: Delphi XE
Репутация: выкл
По умолчанию

Курсор стоит не на поле, а на записи в таблице.
Или мы разные курсоры имеем в виду?
__________________
Некоторые программисты настолько ленивы, что сразу пишут рабочий код.

Если вас наказали ни за что - радуйтесь: вы ни в чем не виноваты.
Ответить с цитированием
  #5  
Старый 21.04.2011, 17:51
BenDjoys BenDjoys вне форума
Прохожий
 
Регистрация: 21.04.2011
Сообщения: 5
Репутация: 10
По умолчанию

Еще более детализирую.
В общем мне нужно сделать что то типа журнала, в который будет заносится следующая информация: дата, имя изменяемого поля, значение до изменения, значение после изменения. Если бы был задействован один DBGrid то ничего сложного в принципе не было бы, но у меня их для этой таблицы 7 штук и около 70 DBEditov ... так что я решил, что зная текущее положение курсора в ADOTable, смогу узнать значение ДО изменения - обработав beforeEdit, а значение ПОСЛЕ обработав beforePost. Но уперся в то, что не могу узнать на каком поле в данный момент находится курсор в ADOTable
Ответить с цитированием
  #6  
Старый 21.04.2011, 18:04
BenDjoys BenDjoys вне форума
Прохожий
 
Регистрация: 21.04.2011
Сообщения: 5
Репутация: 10
По умолчанию

Не отрицаю что у меня могут отсутствовать какие то базовые знания на этот счет( ... я просто подумал, что если есть такие методы как Next и Prior, то должно же как то фиксироваться положение курсора в наборе данных? или иначе Nexn и Prior по отношению к чему?
Ответить с цитированием
  #7  
Старый 21.04.2011, 19:25
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,015
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Делай на триггере в БД. Иначе застрелишься.
Еще можно, конечно, сделать на DataSet (ADOQuery), но там все-равно придется на каждом делать, даже если они все указывают на одну таблицу. Хотя можно попробовать написать универсальную процедуру.
Ответить с цитированием
  #8  
Старый 21.04.2011, 20:23
BenDjoys BenDjoys вне форума
Прохожий
 
Регистрация: 21.04.2011
Сообщения: 5
Репутация: 10
По умолчанию

Цитата:
Делай на триггере в БД.
А можно по подробнее? я не очень понимаю о чем речь
Ответить с цитированием
  #9  
Старый 22.04.2011, 08:05
Аватар для Страдалецъ
Страдалецъ Страдалецъ вне форума
Гуру
 
Регистрация: 09.03.2009
Адрес: На курорте, из окна вижу теплое Баренцево море. Бррр.
Сообщения: 4,721
Репутация: 52347
По умолчанию

Вы не указали, что за базу вы используете, вот lmikle и предположил, что у вас SQL-сервер с поддержкой тригеров. Если его предположение верно, то лучше действительно это делать через тригер.Если нет поддержки тригеров, то можно сделать двумя способами. Сделать один универсальный обработчик для всех полей, который будет писать в журнал эту информацию(Но полезность данной операции у меня вызывает сомнения). Либо сделать хелпер для поля TAdoField который будет делать то-же самое, только обработчик событие не надо будет привязывать всякий раз при добавлении нового поля.
__________________
Жизнь такова какова она есть и больше никакова.
Помогаю за спасибо.
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 20:19.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter