![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
BeforePost и LookUp поле [D5, Paradox]
td © (2004-03-22 22:50:00)Есть большое количество маленьких дочерних таблиц, привязанных к основной - родительской.
Их структура почти одинаковая (первые три поля везде называются одинаково):
1. Идентификатор
2. Код родительской таблицы
3. Код записи из справочника - для каждого такого поля создано поле LookUp
4. Одно-два числовых поля.
Большинство таблиц связаны с собственными справочниками, некоторые - с одинаковыми.
Каждая из них открывается в одной и той же форме (модальной, которая при закрытии всякий раз уничтожается). В форму передается TTable.
На событие BeforePost стоит обработчик - проверка на дублирование, на целостность.
Так почему открытием выпадающего списка (для выбора значения из справочника) у одной таблицы срабатывает BEFOREPOST?
Причем, если отключить обработку, перед открытием списка и после выбора появляется сообщение об ошибке "TableSPS: DataSet not in edit or Insert mode." А TableSPS - это справочник!!
Отчаявшись найти ошибку в коде, я удалил эту таблицу из датамодуля, перекомпилировал без нее, никаких следов не должно было остаться. Создал заново. Тоже самое.
Потом подумал, может, это глюк DBGridEh - мало ли, сделал именно для этой таблицы свою собственную форму с обычным DBGrid. Тоже самое.
Ко всему прочему, есть дочерние таблицы, имеющие точно такую же структуру, связанные с этим же справочником - и для них все работает без проблем.
Где ошибку искать?
Спасибо!
td (2004-03-24 22:56:00) [1]TableSPS - это справочник
lety@mail.ru
служивый (2004-03-24 20:28:00) [2]e-mail есть ?
служивый (2004-03-24 20:20:00) [3]TableSPS это тавлица из которой берутся значения или куда вставляются?
td (2004-03-24 19:16:00) [4]никаких больше обработчиков нет у этой таблицы, которых бы не было у других.
Т.е. я ее даже специально удалял, чтобы убедиться
с пошаговым все уходит в недра DBGridEh :(
служивый (2004-03-23 21:30:00) [5]1 проверь какие еще есть обработчики для этой таблицы
2 поставь прерывание и пройди пошагово все циклы
td (2004-03-23 20:47:00) [6]
> служивый (23.03.04 20:43) [3]
Проверка делается с помощью запроса.
Но в чем загвоздка - все прекрасно работает для 30 таких же таблиц, ничего не понимаю
служивый (2004-03-23 20:43:00) [7]На событие BeforePost стоит обработчик - проверка на дублирование, на целостность.
Проверка делается не с помощью locate?
Если да то таблицу надо после этого перевести в режим редактирования
td (2004-03-23 17:24:00) [8]спасибо, но там большой проект.
И потом, он военный. Типа секретность и все такое %)
Но хотя бы примерно. С чего бы ты начал искать?
Zacho (2004-03-22 22:58:00) [9]Пришли мне свой проект. Всё: исходники, таблицы. Мыло есть в анкете. Не обещаю - но если будет время завтра посмотрю.