![]() |
|
|
![]()
|
|
| mspuz |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 304 Регистрация: 20.6.2005 Где: Ногинск Репутация: нет Всего: нет |
Почитал умную книжку и обнаружил офигенный механизм ссылочной целостности для БД. Я сразу понял, что это как раз то, чего не хватает для наших БД и принялся за дело...В понедельник пришли операторы и принялись за обычную работу, но....стали вылетать ошибки о несоответствии заносимых данных. Сначало я начал править программы, но потом понял, что это слишком дорого и долго и пришлось потихоньку отключать все связки
Сервер FireBird 2.0 Alpha 2 |
|||
|
||||
| kobra |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 730 Регистрация: 15.6.2005 Где: Грузия, Тбилиси Репутация: 1 Всего: 9 |
для этои цели нужно пользоватся тригерами в том случае, когда другие средства не могут обеспечить нужную функционалность
|
|||
|
||||
| superVad |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 735 Регистрация: 6.4.2006 Где: Черкассы, Украина Репутация: 3 Всего: 15 |
А поконкретней, что эти тригера делают? Может там внешними ключами обойтись можно.
|
|||
|
||||
| Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 29 Всего: 329 |
для ссылочной целостности лучше всего использовать внешние ключи! О как!
|
|||
|
||||
| DimW |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1330 Регистрация: 24.2.2005 Где: Орёл Репутация: 5 Всего: 44 |
в печку ее!!! каждый механизм нужно использоваться по назначению, и не надо придумывать извратных способов в часности организовывать ссылочную целостность тригерами или чево лучше на стороне клиента... нет ни чего быстрее чем ссылочная целостность организованныя внешними ключами, это уже проверино и доказано не однократно. |
|||
|
||||
| Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 29 Всего: 329 |
||||
|
||||
| mspuz |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 304 Регистрация: 20.6.2005 Где: Ногинск Репутация: нет Всего: нет |
1. В книге я узнал про ссылочную целостность, а не про её замену на тригерры
2. Я и не говорил, что тригерры лучше или, что я стремлюсь изобрести велосипед с квадратными колесами. 3. Программы, которые работают с БД написанны с использованием BDE и почему то выдают ошибки при наличии ссылочной целостности, хотя целостность не нарушенна. Для примера, в одной из программ компонент BDE выполнял update и вываливался с ошибкой про внешние ключи. Заменил компонент на IBQuery и ошибка исчезла!!! Получается, что BDE не понимает всех тонкостей FireBird??? Ведь ссылочная целостность присутствовала и в Delphi 3, а тогда была тока BDE, но там был сервер InterBase. |
|||
|
||||
| drkot |
|
|||
![]() Ищущий ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1042 Регистрация: 5.5.2006 Репутация: нет Всего: 8 |
Возможно порядок заполнения данных в BDE не адекватен твоей базе.
Возможно BDE и не знает что такая (целостость) вообще существует. Наверняка заточена под IB, что и следует из названия. -------------------- Ошибка не становится истиной по причине широкого распространения, как и Истина не становится Ошибкой из-за того, что никто её не видит. |
|||
|
||||
| mspuz |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 304 Регистрация: 20.6.2005 Где: Ногинск Репутация: нет Всего: нет |
drkot, Ну вот об этом и речь!!! ТОгда у меня один выход (или есть другой) - использовать тригеры.
|
|||
|
||||
| Fazil6 |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1653 Регистрация: 3.5.2006 Где: Минск Репутация: 1 Всего: 60 |
выход в том, чтобы не использовать BDE |
|||
|
||||
| mspuz |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 304 Регистрация: 20.6.2005 Где: Ногинск Репутация: нет Всего: нет |
Fazil6, Программа была написана несеолько лет назад и изменять её никто не будет (тем более по правилам программистов, если работает тогда не трогай - пускай работает).
Вопрос был в следующем - насколько надежны и быстры триггеры и есть ли смысл их использовать, или это лишь замедлит процесс??? |
|||
|
||||
| superVad |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 735 Регистрация: 6.4.2006 Где: Черкассы, Украина Репутация: 3 Всего: 15 |
Это в любом случае замедлит процесс - ведь чтото делать всегда дольше чем ничего не делать. А вот на сколько замедлит это надо проверять.
|
|||
|
||||
| skyboy |
|
|||
|
неОпытный ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9820 Регистрация: 18.5.2006 Где: Днепропетровск Репутация: нет Всего: 260 |
иногда без триггеров не обойтись: например, если таблица для обеспечения ссылочной целостности должна ссылаться на саму себя(например, хранение дерева в виде связки "отец"+"сын"). у меня, по крайней мере, foreign key на саму себя не создался под IB 6.5. Обошёлся триггерами. Но они, естественно, потенциально медленнее, т.к. намного гибче ссылочной целостности... Кто-то же эту гибкость должен реализовывать...
|
|||
|
||||
![]()
|
| Правила форума "Delphi: Базы данных и репортинг" | |
|
|
Запрещено: 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами Обязательно указание: 1. Базы данных (Paradox, Oracle и т.п.) 2. Способа доступа (ADO, BDE и т.д.)
FAQ раздела лежит здесь! Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Vit, Петрович. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Базы данных и репортинг | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |