powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / View при участии другой View
8 сообщений из 8, страница 1 из 1
View при участии другой View
    #33331116
Роман Новичек
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Привет всем!
VFP 8.0
Создается база данных:
CREATE DATABASE data1
в ней Local View на свободные таблицы с параметром:
CREATE SQL VIEW nkl AS select * from table1 where num=?nNum
Настраиваю с помощью DBSetProp
Создаю еще одну LV:
CREATE SQL VIEW nkl2 AS SELECT table2.* From table2 Right join data1!nkl ;
on table2.kod=nkl.kod where table2.pol=?nPol
Так вот при выполнении последнего Create он просит ввод параметра для LV nkl
Вопрос1: как сделать так, чтобы он не просил параметр?

После того как я не нашел ответ на 1-й вопрос, я решил выполнить все раздельно
Сперва создается база, потом LV nkl, потом nNum=300, потом USE nkl IN 0,
потом спустя некоторое время (после различных операций) Create LV nkl2, а вот потом когда я хочу сделать настройки с помощью DBSetProp (DBSetProp(nkl2,"View","SendUpdates",.T.)) у меня вылазит ошибка, что переменная nkl2 не найдена.
Вопрос2: где я накосячил? Почему не найдена если все условия вроде бы выполнил (nkl открыта, значит Join должен сработать, а параметр nPol пока не нужен, т.к. я только создаю)
Заранее спасибо.
...
Рейтинг: 0 / 0
View при участии другой View
    #33331164
AleksMed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DBSETPROP("nkl","VIEW"...)
...
Рейтинг: 0 / 0
View при участии другой View
    #33331188
Роман Новичек
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Честно говоря не совсем понял. Если про то, настраивал ли я nkl, то да.
Извеняюсь, сегодня пока ответить на вопрос или посмотреть ответы не смогу, потому что уезжаю на объект. Продолжу завтра.
...
Рейтинг: 0 / 0
View при участии другой View
    #33331531
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Роман НовичекТак вот при выполнении последнего Create он просит ввод параметра для LV nkl
Вопрос1: как сделать так, чтобы он не просил параметр?
Правильно просит.

Дело в том, что Local View - это не есть таблица. По сути - это запрос. Команда Select-SQL. Т.е. прежде, чем обратиться к результату выполнения этого запроса его собственно надо выполнить.

То, что он просит указать параметр на этапе создания - не страшно. Ему собственно нужен не сам параметр, а структура. Можешь в командном окне просто сделать присвоение:

nNum = 300

Поскольку переменная, созданная в командном окне имеет область видимости PUBLIC, то эта переменная будет "видна" на этапе проектирования Local View.

Роман НовичекПосле того как я не нашел ответ на 1-й вопрос, я решил выполнить все раздельно
Сперва создается база, потом LV nkl, потом nNum=300, потом USE nkl IN 0,
потом спустя некоторое время (после различных операций) Create LV nkl2,
Правильно мыслишь. По другому не получится. Хотя не вижу особого смысла делать Local View динамически. Но это уж тебе виднее...

Роман Новичека вот потом когда я хочу сделать настройки с помощью DBSetProp (DBSetProp(nkl2,"View","SendUpdates",.T.)) у меня вылазит ошибка, что переменная nkl2 не найдена.
Вопрос2: где я накосячил? Почему не найдена если все условия вроде бы выполнил

Ну, так AleksMed тебе намекнул, что имя Local View надо взять в кавычки.

DBSetProp("nkl2","View","SendUpdates",.T.)

В том синтаксисе, что ты пишешь, FoxPro предполагает, что имя View, для которого надо произвести изменения настройки находится внутри переменной памяти m.nkl2. Пытается найти такую переменную, не находит и сообщает тебе об этом.
...
Рейтинг: 0 / 0
View при участии другой View
    #33332121
Роман Новичек
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо огромное. Вот так всегда, из за какой-то мелочи крупные проблемы :))
...
Рейтинг: 0 / 0
View при участии другой View
    #33332398
Роман Новичек
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Еще один вопросик. Если View находится в установке Buffering=5 и пуста после добавления в нее записей и до TableUpdate можно ли получить из нее данные Select-ом? Просто мне надо выбрать те позиции из таблицы остатков, которые находятся в View, чтобы не тащить всю таблицу. И не хочется делать это после TableUpdate. Если нет, то буду думать другой способ. (хотя я думаю другого, как тощить все позиции из таблицы остатков, способа нет)
...
Рейтинг: 0 / 0
View при участии другой View
    #33332520
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Роман НовичекЕще один вопросик. Если View находится в установке Buffering=5 и пуста после добавления в нее записей и до TableUpdate можно ли получить из нее данные Select-ом?
Если версия FoxPro младше 9, то нельзя.

Роман НовичекПросто мне надо выбрать те позиции из таблицы остатков, которые находятся в View, чтобы не тащить всю таблицу.
Как правило, общее количество записей в Local View относительно невелико. В противном случае просто нет смысла делать такое View. Это значит, что прямое сканирование через SCAN...ENDSCAN не займет много времени.

Можно также использовать команду

COPY TO или COPY TO ARRAY

Эти команды будут копировать в том числе и содержимое буфера.
...
Рейтинг: 0 / 0
View при участии другой View
    #33332531
Роман Новичек
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
спасибо, будем использовать Scan ... EndScan
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / View при участии другой View
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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