|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
10.03.2011, 07:53 | #1 |
Форумчанин
Регистрация: 29.09.2009
Сообщений: 587
|
Связи таблиц и обеспечение целостности FireBird
Здравствуйте.
У меня есть три таблички Tab1,Tab2,Tab3 у всех трех таблиц есть первичные ключи Id которые заполняются при помощи генераторов. Вопрос в следующем как обеспечить целостность данных в этих таблица то есть если данные добавляются в Tab1 то и должны добавляться в Tab2 и Tab3 если этого не происходит то транзакция не подтверждается. Я так понимаю что нужно установить отношения между таблицами и сделать внешние ключи но вот как это сделать в IBExpert? В Accese это просто. И как добавить данные в связные таблицы. Я так думаю делать это нужно одним запросом если можно пример. Спасибо. |
10.03.2011, 10:18 | #2 |
Форумчанин
Регистрация: 29.09.2009
Сообщений: 587
|
Сделал следующее создал 3 таблички
Tb1 поля ID, TB2_ID, TB3_ID Tb2 поля Id, tel Tb3 поля Id, name Выставил в Tb1 внешние TB2_id и Tb3_Id b соответственно указал соответствующие поля id в табличках юзаю след код Код:
|
10.03.2011, 12:01 | #3 |
Старожил
Регистрация: 20.04.2008
Сообщений: 5,528
|
ОДНА транзакция на все три запроса. Если во время выполнения что-то не так, то откат (rollback).
Код:
программа — запись алгоритма на языке понятном транслятору
Последний раз редактировалось evg_m; 10.03.2011 в 12:06. |
10.03.2011, 12:07 | #4 |
Форумчанин
Регистрация: 29.09.2009
Сообщений: 587
|
Я правильно понимаю я могу хоть 10 запросов выполнить типо
Код:
|
10.03.2011, 12:08 | #5 | |
Старожил
Регистрация: 20.04.2008
Сообщений: 5,528
|
Цитата:
программа — запись алгоритма на языке понятном транслятору
|
|
11.03.2011, 02:18 | #6 |
Форумчанин
Регистрация: 29.09.2009
Сообщений: 587
|
нет такого метода
Код:
|
11.03.2011, 03:08 | #7 |
Форумчанин
Регистрация: 29.09.2009
Сообщений: 587
|
Возникла следующая проблема.
Код Код:
если в функциях выполняется все нормально и данные добавляются то блок finally все равно выполняется и появляется сообщение о том что данные не добавлены((( |
11.03.2011, 03:17 | #8 |
Форумчанин
Регистрация: 29.09.2009
Сообщений: 587
|
заменил finally на exept
Сообщение стало появляться только тогда когда происходит ошибка а не в любом случае. Но осталась проблема с счетчиками их индексы не откатываются как можно решить данный казус |
11.03.2011, 08:22 | #9 | |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
Цитата:
Счётчики можно использовать только для внутреннего употребления (например, в качестве ключей). При этом всё, что от них требуется - это уникальность в пределах таблицы. и всё. Если же Вы привязались к этим счётчикам - то Вы сделали ошибку. меняйте свои алгоритмы (если это возможно)... p.s. подумайте, например, а что будет с счётчиками, если пользователь добавил запись ошибочно и захочет её удалить... Особенно, если это не крайняя запись... |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Бональные связи таблиц...:-(( | Agapov_stas | Microsoft Office Access | 3 | 22.07.2010 08:10 |
Связи таблиц в ADO+Delphi? | Baaandit | БД в Delphi | 3 | 20.05.2010 16:34 |
как указать на связи таблиц | malayka | БД в Delphi | 4 | 22.04.2010 17:35 |
Связи таблиц | Dima_mazhor | Microsoft Office Access | 2 | 23.12.2008 15:37 |