![]() |
|
|
![]()
|
|
| AlexPro |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 157 Регистрация: 9.11.2005 Где: Санкт-Петербург Репутация: нет Всего: 4 |
Есть некий вид, делающий выборку из нескольких связанных таблиц. Мне необходимо, чтобы в результаты не включались записи, помеченные для удаления.
На SET DELETED вид не реагирует, про функцию DELETED() в хелпе по SQL-SELECT написано нечто невразумительное, заключающееся в том, что ее нужно использовать крайне осторожно и только если выборка делается из единственной таблицы. Что делать, если таблиц несколько, разумеется, ничего не сказано. Подскажите, плиз, что делать (кроме как упаковывать таблицы после удаления каждой записи - вариант неприемлемый)? |
|||
|
||||
| SaschaL |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 880 Регистрация: 13.12.2006 Где: Челябинская обл г .Нязепетровcк Репутация: нет Всего: 9 |
Доброго времени суток! Увидел вас вопрос, решил вспомнить прошлое, раньше занимался Фоксом очень плотно , в настоящее время по мере необходимости.
Привожу пример кода который нашел в своем архиве (это хелп на русском языке):
Если нужно выбрать только помеченные то вид кода будет выглядеть примерно так, прошу простить если ошибусь в синтаксисе, пишу по памяти
|
||||
|
|||||
| SaschaL |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 880 Регистрация: 13.12.2006 Где: Челябинская обл г .Нязепетровcк Репутация: нет Всего: 9 |
Пришел на работу проверил работоспособность кода.
Искусственно создал ситуацию при которой в базе (*.dbf) имелись записи помеченные на удаление. Открыл таблицу в Фоксе и произвел отбор записей следующей командой.
в результате чего в запрос попали записи из таблицы sotr помеченые в таблице как удаленные. Подобная же конструкция запроса может быть и применима для более сложных запросов например выбору по нескольким связанным таблицам. В принципе в справочнике по языку написано подробно, главное понять философию самого FoxPro. Сразу оговорюсь пробовал это сделать как на версии 6-ой так и на 9-ке. |
|||
|
||||
| AlexPro |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 157 Регистрация: 9.11.2005 Где: Санкт-Петербург Репутация: нет Всего: 4 |
SaschaL, спасибо за ответ, но к сожалению, приведенный пример подходит для выборки только из единственной таблицы. Вот что пишет по этому поводу сама Microsoft:
Вот, собственно, и вся философия... Тем не менее, этот ответ заставил меня гораздо основательней поковыряться с этим вопросом и найти приемлемое решение. Проблема заключалась в том, что форма, отображающая вид, использует приватную сессию данных и все установки (в т.ч. и SET DELETED) у меня вызывались из метода формы LOAD (т.е. после открытия таблиц). Для таблиц это было совершенно неважно, в отличие от вида. После перемещения вызова SET DELETED ON в метод BeforeOpenTables все заработало как надо: записи, помеченные на удаление, перестали попадать в выборку, что меня чрезвычайно порадовало. Еще раз спасибо. |
|||
|
||||
![]()
|
| Правила форума "Foxpro/Clipper/Dbase" | |
|
|
Запрещается! 1. Публиковать ссылки для чисто рекламных целей. 2. Оффтопить, флеймить, говорить не культурно. Пожалуйста, адекватно задавайте свой вопрос. Тема должна создаваться с названием характеризующем Вашу проблему. Задавайте вопросы правильно - как спросите, так вам и ответят. Разрешено! Давать ссылки на статьи, обзоры, если это не нарушает первый пункт правил. Задавая вопрос, давайте нужную информацию касающуюся Вашей проблемы. Этим вы ускорите полезные ответы. P.S. Размещение рекламы будет строго наказываться! Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, MoLeX |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Foxpro/Clipper/Dbase | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |