![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
минимакс
Участник клуба
Регистрация: 11.06.2008
Сообщений: 1,143
|
![]()
Пытался найти ответ, но не смог понять как. Вот такой вопрос
Есть компонент DBGrid в свойствах DataSource подвязан DataSource1. У компонента DataSource1 в DataSet могут быть подключены либо ADOTAble, либо ADOQuery. Когда там ADOTAble, то все перемещения по DBGrid паралелльно выполняются в ADOTable и соответственно при изменении записей можно не беспокоиться о попадании в выбранную позицию таблицы. Когда подключается ADOQuery, то я в ADOTAble постоянно выбранна первая запись. Подскажите, что сделать, чтобы перемещения по записям DBGrid, работающей с результатами выборки, паралелльно шли в ADOTable1. И обратное, если я изменяю ADOTable (новая запись, правка, удаление) - чтобы у меня были видны изменения и не изменилась позиция в DBGrid, повязанной к ADOQUery, как поступить? Я предполагаю, что где-то в свойствах DBGrid писать свой обработчик каждый раз при изменении получающей ключевое поле и выполняющей в ADOTAble соответствующий поиск. Наверное не удачное решение. Спасибо.
и это пройдет...
Последний раз редактировалось grenles; 03.06.2011 в 09:24. |
![]() |
![]() |
![]() |
#2 | ||
Старожил
Регистрация: 20.04.2008
Сообщений: 5,543
|
![]() Цитата:
(ADOQuery /ADOTable). DBgrid лишь отражает (показывает) данные перемещения. Dataset.OnAfterScroll // cсобытие после перемещения DataSet..Locate // установить на нужную запись Это поиск только в готовом наборе данных (DataSet). Цитата:
прочитать заново Requery или close + Open и выставить на нужную запись Locate сначала не вредно ее (точнее ЕЕ ключевые поля) запомнить. либо использовать данные ADOtable.
программа — запись алгоритма на языке понятном транслятору
Последний раз редактировалось evg_m; 03.06.2011 в 09:52. |
||
![]() |
![]() |
![]() |
#3 |
минимакс
Участник клуба
Регистрация: 11.06.2008
Сообщений: 1,143
|
![]()
Спасибо, попробую разобраться.
и это пройдет...
|
![]() |
![]() |
![]() |
#4 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
![]()
1. В ADOQuery есть событие AfterScroll, в нем в ADOTable искать нужную запись, например с помощью Locate
2. Перед редактированием ADOTable - DBGrid.DattaSource.Enable:=False; запоминаем ид, редактируем, находим по ид, DBGrid.DattaSource.Enable:=True
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
![]() |
![]() |
![]() |
#5 |
минимакс
Участник клуба
Регистрация: 11.06.2008
Сообщений: 1,143
|
![]()
Спасибо ВАМ за советы, помогло
Код:
Код:
и это пройдет...
Последний раз редактировалось grenles; 03.06.2011 в 10:56. |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
adoquery и adotable | Jawakharlal | БД в Delphi | 4 | 06.05.2010 20:28 |
TBatchMove и ADOTable(ADOQuery) | rockedit | БД в Delphi | 0 | 15.12.2009 21:00 |
работа с ADOQuery и ADOTable | jediAlex | БД в Delphi | 1 | 12.10.2009 20:04 |
изменение свойства datasource c adotable на adoquery | koma | Общие вопросы Delphi | 3 | 01.10.2009 13:47 |