Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Один ко многим и ссылочная целостность данных 
:(
    Опции темы
Leksey
Дата 24.10.2006, 13:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 332
Регистрация: 12.12.2004

Репутация: нет
Всего: 1



Простая табличка, формочка и отчет заработали. 
Теперь надо две таблицы - в одной ссылки на другую. То есть в ней есть поля соответствующие primary key воторой таблицы.
 Все вроде похоже,  но с удалением не все так просто.....
Попытался воспользоваться стандартными referential integrity. Как тока щелкаю что-нибудь кроме Ignore на Delete  вылетает "Internal .DBC Error." и усе....
Как наиболее легко и быстро самому обеспечить целостность данных (Предпочитаемая модель - при удалении из родительской таблицы в дочерней ссылки заменяються на что нибудь по типу признака отсутствия)?
Например студенты и преподаватели. У каждого студента преподаватель один. Удалили преподавателя - надо чтоб у его студентов как то обозначалось что нет преподавателя....

И еще вопросики по репортам: Как обновить содержимое View с помощью Requery при печати отчета? (А то он мне удаленные записи печататет) 
Как сделать репорт например такой все студенты данного преподавателя? Это мне View надо делать с селектом нужных студентов(Но преподаватель будет выбираться же - получаеться должен быть динамичный запрос......)?
PM MAIL   Вверх
Artiom
Дата 24.10.2006, 15:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1031
Регистрация: 11.3.2003
Где: Минск\Баку

Репутация: 3
Всего: 17



Цитата(Leksey @  24.10.2006,  13:13 Найти цитируемый пост)
Как сделать репорт например такой все студенты данного преподавателя? Это мне View надо делать с селектом нужных студентов(Но преподаватель будет выбираться же - получаеться должен быть динамичный запрос......)?

Репорты удобно делать на основе курсора. 
Делаешь Select .... into cursor my_cur
В репорте прописываешь в нужных местах my_cur.field1, my_cur.field2...
А чтобы не попадали удаленные записи установи SET DELETED ON


--------------------
Если тебя жизнь трахает, значит, ты ещё живой
PM MAIL ICQ   Вверх
Leksey
Дата 24.10.2006, 17:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 332
Регистрация: 12.12.2004

Репутация: нет
Всего: 1



А где прописать этот Select ? Я вот только этого не могу понять. 
Сделать это до вызова репорта а потом показать Do Report ?
PM MAIL   Вверх
Artiom
Дата 24.10.2006, 17:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1031
Регистрация: 11.3.2003
Где: Минск\Баку

Репутация: 3
Всего: 17



Цитата(Leksey @  24.10.2006,  17:04 Найти цитируемый пост)
А где прописать этот Select ? Я вот только этого не могу понять. Сделать это до вызова репорта а потом показать Do Report ?

Ага 
Например
Код

select * from students where teacher_id = t_id into cursor my_cur
REPORT FORM studentReport TO PRINTER PROMPT PREVIEW 



--------------------
Если тебя жизнь трахает, значит, ты ещё живой
PM MAIL ICQ   Вверх
Leksey
Дата 25.10.2006, 14:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 332
Регистрация: 12.12.2004

Репутация: нет
Всего: 1



Ok. Спасибо. 
Целостность данных реализовал так: триггер на Delete  - у родительской таблицы - который заменяет id удаленной на 0 в дочерних. Так как у меня всего три таблицы и увеличение не планируеться я думаю это приемлемо. Фух кажеться я все таки справился с этим зверем по кличке FoxPro smile
И еще надо ли вот этот my_cursor как нибудь очищать или нет?
В смысле надо ли следить за очисткой ресурсов? 
PM MAIL   Вверх
Artiom
Дата 25.10.2006, 14:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1031
Регистрация: 11.3.2003
Где: Минск\Баку

Репутация: 3
Всего: 17



Цитата(Leksey @  25.10.2006,  14:43 Найти цитируемый пост)
И еще надо ли вот этот my_cursor как нибудь очищать или нет?В смысле надо ли следить за очисткой ресурсов? 

для порядка надо. 
я всегда закрываю курсоры после использования
Код

select my_cursor
use 



--------------------
Если тебя жизнь трахает, значит, ты ещё живой
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Foxpro/Clipper/Dbase"
MoLeX

Запрещается!

1. Публиковать ссылки для чисто рекламных целей.

2. Оффтопить, флеймить, говорить не культурно.

Пожалуйста, адекватно задавайте свой вопрос. Тема должна создаваться с названием характеризующем Вашу проблему.

Задавайте вопросы правильно - как спросите, так вам и ответят.

Разрешено!

Давать ссылки на статьи, обзоры, если это не нарушает первый пункт правил.

Задавая вопрос, давайте нужную информацию касающуюся Вашей проблемы. Этим вы ускорите полезные ответы.

P.S. Размещение рекламы будет строго наказываться!



Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, MoLeX

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Foxpro/Clipper/Dbase | Следующая тема »


 




[ Время генерации скрипта: 0.1250 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.