| imho.ws |
![]() |
|
|
|
# 1 |
|
Guest
Сообщения: n/a
|
Дельфи - поисковое поле
Помогите, плиз, решить проблему. Есть ADOTable1 и ADOTable2, два DataSourse и один DBGrid.
Структура таблиц: ADOTable1 - Key(автоинкр. ключ), string ADOTable2 - Key(автоинкр. ключ), Key1(связан с Key из ADOTable1), string, integer. В ADOTable2 введено поисковое поле, где выводятся значения из ADOTable1.string При программном введении данных в ADOTable2.string прога ругалась что ADOTable2 не в "edit or insert mode". Пришлось сохранять ADOTable1.Key, деактивировать ADOTable1, делать ADOTable2.Append затем забивать ADOTable2.Key1 сохранённым значением ADOTable1.Key и уже затем вводить ADOTable2.string.(Естественно, после этого снова активировать ADOTable1). Так всё работало. Далее понадобилось вводить данные пользователем в ADOTable2.integer через DBGrid. И здесь прога снова начала ругаться (переполнение стека). Если удалить поисковое поле, то данные нормально вводятся, но оно нужно. Что здесь можно сделать? |
|
|
# 3 |
|
Junior Member
Регистрация: 17.12.2002
Адрес: [EST], Tallinn
Сообщения: 120
![]() |
Совет на будущее:
ситуация - добавление записи в ОСНОВНУЮ таблицу, к основной таблице через внешние ключи (в оракл - это констрейнты) подключены ТУЕВА ХУЧА всевозможных вспомогательных таблиц. Что на экране - Основная форма МДИ, форма листинг - список, полученный запросом, связывающий НЕСКОЛЬКО ТАБЛИЦ (форма немодальная, навигатор, фильтр, поиск, быстрый фильтр(грубый), доб.инфо, данные в Гриде необновляемы, курсор в гриде в виде строки, не ячейка), модальная форма внесения изменений/дополнений в основную таблицу, основной Дата Сорс - твоя адо таблица. Надеюсь, не стОит объяснять тебе что такое ЛукАп поля ? Нет, ну и ладно. Вот через это ЛукАп поле (и соответственно ЛукАп компонент) будут вызываться второе МОДАЛЬНОЕ окошко, которое будет отвечать за добавление записей в подчинённую таблицу! Тогда и не будет твоей проблемы. Алгоритм добавления записи - ОСНОВНУЮ таблицу в АППЕНД режим, проставил некоторые поля, дошёл до поля, где подставляется значение (ключ) из подчинённой таблице, а нужной записи нет - жамкай на три кнопки, выводи второе модальное окно, подчинённую таблицу в АППЕНД, добавляй необходимую тебе запись, коммит (сохрани), значение ключа новой записи в параметр, возвращаемый этим окном, продолжай заполнение ОСНОВНОЙ таблицы с УЖЕ ИМЕЮЩЕЙСЯ СОХРАНЁННОЙ ЗАПИСЬЮ в подчинённой таблице. Всё опробовано не раз, работает!!! УДАЧИ!!! И С НАСТУПАЮЩИМ!!!
__________________
"я не волшебник - я только учусь..." (c) ...а зовут меня Олег... |
|
|