![]() |
|
![]() ![]() ![]() |
|
AleksandrH |
|
|||
Новичок Профиль Группа: Участник Сообщений: 12 Регистрация: 15.2.2010 Репутация: нет Всего: нет |
На форме есть 2 DBlookupcombobox (дбкб1, дбкб2) данные в которые берутся с таблиц.
В зависимости от выбраной записи в первом дбкб1 выводятся значения в дбкб2. проблема состоит в том что если записи с дбкб1 нет соответсвенной в дбкб2, то выдается ошибка "BOF или EОF имеет значение True либо текущеее значение удалено". Как обратоботать ету ошибку чтобы выводило сообщение? |
|||
|
||||
former |
|
|||
![]() MEMS Expert ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1166 Регистрация: 1.3.2006 Где: Россия Репутация: 7 Всего: 17 |
Правильно, нарушаются целостность и непротиворечивость данных. Тут не ошибку нужно обрабатывать, а правильно настраивать внешние ключи. Потомок должен удаляться при удалении родителя, или ему должен быть сопоставлен новый родитель до удаления. СУБД какая? Это сообщение отредактировал(а) former - 20.5.2010, 13:07 -------------------- Достаточно снизить уровень мышления, чтобы иные почувствовали почву под ногами. |
|||
|
||||
AleksandrH |
|
|||
Новичок Профиль Группа: Участник Сообщений: 12 Регистрация: 15.2.2010 Репутация: нет Всего: нет |
||||
|
||||
former |
|
|||
![]() MEMS Expert ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1166 Регистрация: 1.3.2006 Где: Россия Репутация: 7 Всего: 17 |
Я имею виду это:
![]() Это сообщение отредактировал(а) former - 20.5.2010, 13:38 -------------------- Достаточно снизить уровень мышления, чтобы иные почувствовали почву под ногами. |
|||
|
||||
AleksandrH |
|
|||
Новичок Профиль Группа: Участник Сообщений: 12 Регистрация: 15.2.2010 Репутация: нет Всего: нет |
Извини, я не понимаю что ты хочешь сказать. :-(
Что с этими установками, что без них - не работает |
|||
|
||||
former |
|
|||
![]() MEMS Expert ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1166 Регистрация: 1.3.2006 Где: Россия Репутация: 7 Всего: 17 |
Я хочу сказать, что нужно хотя бы с основами построения БД ознакомиться. Ты пишешь:
Значит эти таблицы должны быть связаны внешним ключом (FOREIGN KEY). Создание связи я привел на изображении. Это необходимо для обеспечения ссылочной целостности, т.е. при удалении записи из родительской таблицы tbl_a должны удаляться, связанные с ней внешним ключом, записи из таблицы tbl_b, что бы они не стали "осиротевшими". Поэтому у тебя и появляется ошибка - родительскую запись удалил, а связанные с ней записи из других таблиц "осиротели" (им не на что ссылаться). Так понятно? P.S. Когда же вы начнете книги читать? Это сообщение отредактировал(а) former - 20.5.2010, 16:32 -------------------- Достаточно снизить уровень мышления, чтобы иные почувствовали почву под ногами. |
|||
|
||||
AleksandrH |
|
|||
Новичок Профиль Группа: Участник Сообщений: 12 Регистрация: 15.2.2010 Репутация: нет Всего: нет |
При чем здесь книжки, удаление родительской записи?
![]() FOREIGN KEY это поле "ид" которое одинаковое в двух таблицах. Вопрос стоит о выборке данных а не об удалении связаных записей. Таблица1 Ид: 1; 2; 3 Таблица2 Ид2: 1_1; 2_2; 3_3 Ид: 1; 1; 2 Имя: Имя1; Имя2; Имя3 Выбираю в 1dblookupcomboboxe значение "1" в 2dblookupcombobox выводится "Имя1; Имя2" Выбираю в 1dblookupcomboboxe значение "2" в 2dblookupcombobox выводится "Имя3" Выбираю в 1dblookupcomboboxe значение "3" в 2dblookupcombobox ничего не выводится, програма выдает ошибку, потому что нет записей связанных с "3". (например, если в таблице1 классы а в таблице2 ученики. При выборе 1 класса - выведется список учеников, а при выборе 3 класса - ошибка, потому что класс есть, но без учеников(ну не успели додать, перевели, разформировали класс)) |
|||
|
||||
former |
|
|||
![]() MEMS Expert ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1166 Регистрация: 1.3.2006 Где: Россия Репутация: 7 Всего: 17 |
Ну тогда выкладывай пример. Телепаты в отпуске.
-------------------- Достаточно снизить уровень мышления, чтобы иные почувствовали почву под ногами. |
|||
|
||||
AleksandrH |
|
|||
Новичок Профиль Группа: Участник Сообщений: 12 Регистрация: 15.2.2010 Репутация: нет Всего: нет |
former спс за "пинок" в нужном напрямлении
![]() |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Delphi: Базы данных и репортинг" | |
|
Запрещено: 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами Обязательно указание: 1. Базы данных (Paradox, Oracle и т.п.) 2. Способа доступа (ADO, BDE и т.д.)
FAQ раздела лежит здесь! Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Vit, Петрович. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Delphi: Базы данных и репортинг | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |