Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Представления / 12 сообщений из 12, страница 1 из 1
27.08.2004, 09:00
    #32668136
Ольга!
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Представления
Привет!
Объясните, пожалуйста,
Отличие представления от запроса, например, я делаю отчёт, что мне лучше использовать в качестве источника,я использовала представление,но если я меняю данные в таблице, в отчёте они не изменяются и представление не сораняет ни выбранные поля , ни связи между таблицами, тогда лучше запрос?
И где можно почитать про представления и запросы, а то я совсем запуталась.Спасибо
...
Рейтинг: 0 / 0
27.08.2004, 09:06
    #32668148
ВладимирМ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Представления
Почитать можно в данном форуме. Просто сделай поиск по ключевому слову "View".

По сути, Local View - это тот же самый Select-SQL. Т.е. это некоторая выборка из базы данных.

Если были изменены исходные данные, то чтобы это отобразилось во View необходимо выполнить его обновление. Либо переоткрыть, либо дать команду Requery('MyView")
...
Рейтинг: 0 / 0
27.08.2004, 10:00
    #32668254
BladeRunner
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Представления
Представления - это те-же самые запросы, но которые хранятся в базе данных (что гораздо удобнее и продуктивнее для разработки и последующего сопровождения) и к которым применимы практически все опции и возможности, которые можно применить к таблицам БД.
Поэтому по собственному опыту рекомендую использовать их, а не запросы вставляемые в код формы. Для того, чтобы обновлялись данные в таблице необходимо в настройках вида установить параметр Send SQL updates (во вкладке Update criteria) и предварительно там-же установить ключевые и изменяемые поля.
...
Рейтинг: 0 / 0
27.08.2004, 11:04
    #32668398
Ольга!
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Представления
Спасибо ВладимирМ, BladeRunner!
Хоть немного разъяснили!
...
Рейтинг: 0 / 0
27.08.2004, 11:36
    #32668474
Ольга!
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Представления
У меня параметр Send SQL updates не подсвечивается, как сделать?
...
Рейтинг: 0 / 0
27.08.2004, 12:31
    #32668636
ВладимирМ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Представления
Так надо начать с самой первой закладки!

-) Сначала выбери поля, которые будут во View
-) Потом, на закладке Update Criteria надо указать ключевое поле (под значком с ключем), т.е. поле, содержимое которого однозначно идентифицирует запись во ВСЕЙ исходной таблице
-) Потом, на закладке Update Criteria надо указать обновляемые поля (под значком с карандашем), т.е. поля, изменения в которых будут сбрасываться в исходную таблицу

И вот только после этого установить птичку "Send SQL updates".
...
Рейтинг: 0 / 0
27.08.2004, 14:09
    #32668919
Ольга!
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Представления
ВладимирМ,а как же, если я использую 4 таблицы (все связанные), вроде должно быть то же самое. Если делать как советовалось, то выскакивает ключевое поле одной таблицы и говорит, что не находит его и ничего мне не сохраняет.
...
Рейтинг: 0 / 0
27.08.2004, 14:51
    #32669068
ВладимирМ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Представления
Вот обновляемый View по нескольким таблицам - это отдельная песня.

Нет, если ты только модифицируешь уже существующие записи, то никаких проблем вне зависимости от того, сколько бы таблиц-источников не было. А вот если будут создаваться новые записи, то вот тут-то проблемы и начнуться.

Ну, для начала, необходимо предусмотреть заполнение ключевого поля новой записи.

Если обновляется только одна (главная) таблица, то все достаточно просто, а вот если обновляется одноврменно и главная и подчиненная, то тут большая проблема в том, что необходимо определить код записи главной таблицы ДО того как будет создана запись в подчиненной.

Впрочем, прежде чем объяснять что там и как, желательно уточнить следующее:

-) Какая версия FoxPro
-) Как формируется значение ключевого поля
-) Обновляться во View должны только поля одной таблицы-источника или всех 4
-) И о чем вообще речь в этом вопросе:
Ольга!Если делать как советовалось, то выскакивает ключевое поле одной таблицы и говорит, что не находит его и ничего мне не сохраняет.
Не понял, что и когда выскакивает.
...
Рейтинг: 0 / 0
27.08.2004, 15:09
    #32669122
Ольга!
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Представления
ВладимирМ, оставляю вопрос до понедельника, хороших выходных Вам!
...
Рейтинг: 0 / 0
30.08.2004, 09:54
    #32670535
Ольга!
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Представления
Привет всем!
Представление мне необходимо для отчёта.
Выборка из 4 таблиц.
Три таблицы включают: первичный ключ, название и др.атрибуты.
Четвёртая связующая таблица включает: первичные ключи из первых трёх таблиц, плюс ещё два поля.
Хотелось бы выбрать необходимые мне поля из этих таблиц и сохранить представление.
Потому что при повторном желании модифицировать или просмотреть, выскакивает одно ключевое поле связующей таблицы и открывает представление без выбранных полей и связей между таблицами.

FoxPro 5, есть 6-ой.
Обновляться во View должны поля всех 4
...
Рейтинг: 0 / 0
30.08.2004, 10:45
    #32670651
ВладимирМ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Представления
Ольга!
Представление мне необходимо для отчёта.
Обновляться во View должны поля всех 4
Когда я задавал уточняющий вопрос, то под словом "обновлять" я понимал сброс изменений внесенных во View в исходные таблицы-источники, но для отчета - это бессмысленно. Вы же ничего не корректируете в результирующей выброке! Зачем тогда что-то менять в исходных таблицах

Ольга!
Выборка из 4 таблиц.
FoxPro 5, есть 6-ой.

Вплоть до VFP8 штатный дезайнер запросов некорректно создавал объединения, если в качестве источника данных были более 2 таблиц-источников. Он строил запрос вида:

FROM ... JOIN ... JOIN .. ON ... ON ...

а должно быть

FROM ... JOIN ... ON ... JOIN ... ON ...

Если объединение таблиц по типу INNER JOIN, то в этом случае рекомендуется перенести условия объединения таблиц с закладки JOIN на закладку FILTER

Ольга!Потому что при повторном желании модифицировать или просмотреть, выскакивает одно ключевое поле связующей таблицы и открывает представление без выбранных полей и связей между таблицами.
Такого не может быть! Внимательно следите за собственными действиями. Надеюсь, перед тем как выйти из дезайнера View Вы его сохранили?

В принципе, повреждение структуры View может быть только в том случае, если были модифицированы структуры таблиц-источников этого View. В этом случае при открытии View на редактирование возникнет сообщение об ошибке. Тогда проще удалить View и сделать его заново (можно поковыряться в структуре, но вряд ли оно того стоит.)
...
Рейтинг: 0 / 0
30.08.2004, 11:17
    #32670740
Ольга!
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Представления
Ура,ура,ВладимирМ!
Всё работает, я перенесла условия объединения таблиц с закладки JOIN на закладку FILTER.Спасибочкииии!!!
...
Рейтинг: 0 / 0
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Представления / 12 сообщений из 12, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]