powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / View и как с ним бороться
5 сообщений из 5, страница 1 из 1
View и как с ним бороться
    #33284491
Cop_man
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
При создании view

CREATE SQL VIEW view_p_pay2 AS ;
select b.id_pay, b.id_pay_up, b.addr_pay, b.rah_pay, b.mfo_pay, b.bank_pay, b.date_pay ;
from p_pay_dop as b, p_pay as a ;
where a.id_pay=b.id_pay and b.id_pay=2 ;
order by b.id_pay_up

и потом его открытии в первый раз выдаються правильные данные, но если опять выполнить создание этого же view, но уже с

where a.id_pay=b.id_pay and b.id_pay=1 ;

то при открытии выдаються старые значения.

Что можно сделать, чтобы и во втором случае view работал нормально?
Или посоветуйте, если можно не пересоздавая view изменить так, чтобы в него выдавальсь только те записи, которые b.id_pay=1
...
Рейтинг: 0 / 0
View и как с ним бороться
    #33284535
AleksMed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Между первым и вторым дай команду USE или CLOSE TABLE ALL.
А вообще то создай параметиризованное VIEW и не мучайся.

CREATE SQL VIEW view_p_pay2 AS ;
select b.id_pay, b.id_pay_up, b.addr_pay, b.rah_pay, b.mfo_pay, b.bank_pay, b.date_pay ;
from p_pay_dop as b, p_pay as a ;
where a.id_pay=b.id_pay and b.id_pay= ?tnID_Pay ;
order by b.id_pay_up
...
Рейтинг: 0 / 0
View и как с ним бороться
    #33284576
Фотография Владимир СА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cop_manПри создании view

CREATE SQL VIEW view_p_pay2 AS ;
select b.id_pay, b.id_pay_up, b.addr_pay, b.rah_pay, b.mfo_pay, b.bank_pay, b.date_pay ;
from p_pay_dop as b, p_pay as a ;
where a.id_pay=b.id_pay and b.id_pay=2 ;
order by b.id_pay_up

и потом его открытии в первый раз выдаються правильные данные, но если опять выполнить создание этого же view, но уже с

where a.id_pay=b.id_pay and b.id_pay=1 ;

то при открытии выдаються старые значения.

Что можно сделать, чтобы и во втором случае view работал нормально?
Или посоветуйте, если можно не пересоздавая view изменить так, чтобы в него выдавальсь только те записи, которые b.id_pay=1
Лучше почитать о ПАРАМЕТРИЗИРОВАННЫХ представлениях. Т.Е. вместо
...b.id_pay=2
поставить:
...b.id_pay=?t_id_pay
т.е. t_id_pay - есть переменная пямяти, ее перед выполнением представления нужно определить (если она не будет определена FOX попросит определить ее). Ты поставишь:
t_id_pay = 1
USE view_p_pay2 IN 0 && для первого вывода представления
Далее когда тебе надо изменить параметр:
t_id_pay = 2
=REQUERY('view_p_pay2') && переопределяем представление
А представление в базе создают один раз, а дальше его только переопределяют с новыми параметрами. Из-за этого оно и называется ПАРАМЕТРИЗИРОВАННОЕ представление.
...
Рейтинг: 0 / 0
View и как с ним бороться
    #33284580
Cop_man
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AleksMedМежду первым и вторым дай команду USE или CLOSE TABLE ALL.
А вообще то создай параметиризованное VIEW и не мучайся.

CREATE SQL VIEW view_p_pay2 AS ;
select b.id_pay, b.id_pay_up, b.addr_pay, b.rah_pay, b.mfo_pay, b.bank_pay, b.date_pay ;
from p_pay_dop as b, p_pay as a ;
where a.id_pay=b.id_pay and b.id_pay= ?tnID_Pay ;
order by b.id_pay_up

Создал, но опять же при присваивании переменной значения 1 показывает правильно, потом изменяю переменную на 2, вызываю view, опять показывает правильно, но это при первом запуске процедуры, когда же тоже самое опять повторить, то в каждом из случаев данные будут неправильными.
Что это может быть и как с этим бороться?
...
Рейтинг: 0 / 0
View и как с ним бороться
    #33284590
Cop_man
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Владимир СА
Лучше почитать о ПАРАМЕТРИЗИРОВАННЫХ представлениях. Т.Е. вместо
...b.id_pay=2
поставить:
...b.id_pay=?t_id_pay
т.е. t_id_pay - есть переменная пямяти, ее перед выполнением представления нужно определить (если она не будет определена FOX попросит определить ее). Ты поставишь:
t_id_pay = 1
USE view_p_pay2 IN 0 && для первого вывода представления
Далее когда тебе надо изменить параметр:
t_id_pay = 2
=REQUERY('view_p_pay2') && переопределяем представление
А представление в базе создают один раз, а дальше его только переопределяют с новыми параметрами. Из-за этого оно и называется ПАРАМЕТРИЗИРОВАННОЕ представление.

Большое спасибо, работает нормально!!!
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / View и как с ним бороться
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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