powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Временные таблицы (#) в VFP
25 сообщений из 30, страница 1 из 2
Временные таблицы (#) в VFP
    #33062064
Jarad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть ли возможность в ФП выгружать результаты запроса во временные таблицы (как в MS SQL "#table" "##table")? конструкцией типа:
SELECT .... INTO #table, в результате создаться вр.таблица,
или создать вр.таблицу командой CREATE TABLE #table (...),
а потом использовать запросы типа:
INSERT INTO #table (...)
SELECT ... FROM ....
...
Рейтинг: 0 / 0
Временные таблицы (#) в VFP
    #33062096
Crip
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
select .... into cursor tmpCur readwrite
...
Рейтинг: 0 / 0
Временные таблицы (#) в VFP
    #33062125
Jarad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Этот курсор до использования создавать необходимо?
По типу CREATE CURSOR tmpCur..
...
Рейтинг: 0 / 0
Временные таблицы (#) в VFP
    #33062127
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Временные таблицы (#) в VFP
    #33062209
Jarad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
С созданием курсоров разобрался.
Но не получается после выгрузки в курсор, выполнить запрос SELECT именно к этоиу курсору?
...
Рейтинг: 0 / 0
Временные таблицы (#) в VFP
    #33062258
Yura .
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нет, если надо Select в курсор, то его не нужно предварительно создавать.
Пример
Открыта таблица Person
Запрос
Select * From Person Where RecNo()<100 Into Cursor crsTemp
Select crsTemp
Browse
...
Рейтинг: 0 / 0
Временные таблицы (#) в VFP
    #33062305
Jarad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SELECT Ж.DATE,
Ж.iddocdef + Ж.IDDOC AS [Вид_1c_type_Документ],
Ж.IDDOC AS Ссылка,
Ж.DOCNO AS Номер,
sp7998 AS ВидОперации,
sp7989 AS [Склад_1c_type_Справочник_МестаХранения],
IIF (Д.SP7998 = 0,ТЧ.SP8009,000000000.00) As СуммаРасход,
IIF (Д.SP7998 = 1,ТЧ.SP8009,000000000.00) As СуммаВозврат
FROM 1SJOURN Ж
INNER JOIN dh8012 Д ON Д.IDDOC = Ж.IDDOC
INNER JOIN dt8012 AS ТЧ ON ТЧ.IDDOC = Ж.IDDOC
WHERE (IDDOCDEF LIKE '%66K%')
AND (Ж.DATE >= {^2005-01-01}) AND (Ж.DATE < {^2005-05-01})
INTO cursor tmpCur NOFILTER
Запрос выполнил. Результат выгрузился в курсор.
Хочу обратиться к курсору как к обычной таблице, т.е. произвести обычный запрос (мне дальше обрабатывать, считать агрегатные ф-и надо, группировать).
Выражения типа
SELECT * FROM tmpCur, SELECT * FROM cursor tmpCur, ругаються на отсутсвие файла tmpCur.dbf.
Выполнение команды DBF('tmpCur') выдает ошибку.
Выполнение конструкции типа:
Select crsTemp Browse
Выдает ошибку: Command is missing required clause.
Можно ли проверить записало ли курсор в дбф, или "заставить" записать, чтобы можно было нормальным селектом обратиться к курсору (т.е. результату первого запроса)
...
Рейтинг: 0 / 0
Временные таблицы (#) в VFP
    #33062369
Yura .
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну для начала сделай простой пример, а потом его усложняй, для этого
- Не используй имена полей более 10 знаков
- Не используй русские символы в именах полей
- Не используй русские символы в имени алиаса
- Не используй имя алиаса из одной буквы
Кроме того пиши двумя строчками
Select tmpCur
Browse
по крайней мере при соблюдении вышеперечисленных условий у меня еще ни разу проблем с курсорами не возникало.
...
Рейтинг: 0 / 0
Временные таблицы (#) в VFP
    #33062381
Urri
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Yura .- Не используй имя алиаса из одной буквыОсобенно буквы m ;-)))
...
Рейтинг: 0 / 0
Временные таблицы (#) в VFP
    #33062393
Jarad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Просто я не в "чистом" ФП выполняю запрос. А через ОДБС из 1С подключаюсь к дбф базе. Не работает только выборка из курсора.
Могу я указать поля, которые мне нужно опработать во втором запросе, при выборке их из курсора?
...
Рейтинг: 0 / 0
Временные таблицы (#) в VFP
    #33062599
Yura .
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тут я пас.
Попробуй это спросить на территории 1С, может там кто знает.
...
Рейтинг: 0 / 0
Временные таблицы (#) в VFP
    #33062631
Jarad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мда..на дружественном форуме ответили, что ОДБС с курсорами не дружит, т.е. понятно почему у меня не получается его видеть, и не создается файл...
Тогда, напрашивается еще один вариант решения.
Можно ли создать на Фоксе
CREATE TABLE #tmp_table (описание полей)
а потом в нее выгрузить резалт:
INSERT INTO #tmp_table (поля)
SELECT (поля) FROM ...
жизненная ли такая конструкция, есть ли понятие временной таблицы (#), для конктретного пользователя (видит только созавший юзер), и (##) глобальных временных таблиц (видят все)?
...
Рейтинг: 0 / 0
Временные таблицы (#) в VFP
    #33062649
Данилов Юрий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JaradПросто я не в "чистом" ФП выполняю запрос. А через ОДБС из 1С подключаюсь к дбф базе. Не работает только выборка из курсора.
Могу я указать поля, которые мне нужно опработать во втором запросе, при выборке их из курсора?
Драйверы ODBC IMHO не для того, чтобы воспроизводить среду VFP, а только для того, чтобы выполнять стандартные SQL-запросы select, insert, update, delete. Поэтому бесполезно ему говорить
Код: plaintext
select ... into cursor crsName
Это уже расширение синтаксиса оператора SELECT в самом VFP
...
Рейтинг: 0 / 0
Временные таблицы (#) в VFP
    #33062658
Jarad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Данилов Юрий Это уже расширение синтаксиса оператора SELECT в самом VFP
Так и есть... понял...
а предидущий мой пост, реализуем?
...
Рейтинг: 0 / 0
Временные таблицы (#) в VFP
    #33062672
Фотография 1024
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вапще-то нужно говорить что не из среды рабтаеш. У драйвера что-то своё может быть. А так - хелп от вфп и пробуй. В самом вфп можно просто

select ... into table c:\table.dbf

поддерживает ли это драйвер - читай документацию к драйверу. Опять же какой он версии неизвестно
...
Рейтинг: 0 / 0
Временные таблицы (#) в VFP
    #33062704
Jarad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Драйвер Microsoft Visual FoxPro Driver 6.01, подключаюсь из 1С.
...
Рейтинг: 0 / 0
Временные таблицы (#) в VFP
    #33062881
Данилов Юрий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JaradТогда, напрашивается еще один вариант решения.
Можно ли создать на Фоксе
CREATE TABLE #tmp_table (описание полей)
а потом в нее выгрузить резалт:
INSERT INTO #tmp_table (поля)
SELECT (поля) FROM ...
жизненная ли такая конструкция, есть ли понятие временной таблицы (#), для конктретного пользователя (видит только созавший юзер), и (##) глобальных временных таблиц (видят все)?
На Фоксе возможно все. Только тогда зачем CREATE и потом INSERT...from SELECT? Достаточно SELECT ... INTO CURSOR crsName, одним оператором получаешь свой резалт.
Понятие временной таблицы, видной только создателю - это и есть тот самый CURSOR, создается в памяти, на диск по возможности, пока есть свободный RAM, не пишется, если не хватает - то реализуется через .TMP-файл.
Не читаешь, похоже, доки, в которые тебя тычут...
...
Рейтинг: 0 / 0
Временные таблицы (#) в VFP
    #33062924
Jarad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Данилов Юрий
Не читаешь, похоже, доки, в которые тебя тычут...

Доки читаю. Про курсоры понял, но они от этого у меня работать не будут.
Как и не работает конструкция типа select ... into table tmp,
это тоже, наверное, фоксовое расширение синтаксиса селекта.
Драйвер сильно урезает возможности оперирования с данными.
...
Рейтинг: 0 / 0
Временные таблицы (#) в VFP
    #33063029
leaf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
так просто мимоходом
там кажеться в 7.7 был то ли объектик то ли агрегатный тип данных то ли что-то из метаданных как это у вас называеться
короче эта штука специально для работы с таблицами дбф создана
инициализиреется по типу создания нового документа вот с ней и нужно работать а что медленно это к разработчикам 1С уже надо

или закачайте все на скл_сервер и работайте так как Вы рассказываете через Ваши временные таблицы он у Вас посредником будет
з.ы. это не одбс плохой а 1С урезаный язык хотя на нем тоже работать можно
...
Рейтинг: 0 / 0
Временные таблицы (#) в VFP
    #33063205
Jarad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1с язык конечно ограниченый, с дбф он работать позволяет, но мне нужен функционал построения СКЛ-запросов в 1с, такое реализуется только через ОДБС или АДО, и вот тут вылазят "грабли", типа того что драйвер ОДБС 6-й версии (с которым 1с работает) не поддерживает подзапросы, приходиться работать со временными таблицами, которые тоже драйвером не поддерживаются...
Если бы была возможность использовать MS SQL, то вопрос вобще бы не стоял, из 1с можно постоить запрос любой степени сложности и вложенности к MS SQL (тут и драйвера и СУБД позволяет), но задача будет выполняться на туевой туче удаленных рабочих мест, где не то что MS SQL остсутвует, слава Богу что дбф работает...
А обработать дбфы средствами языка 1с в данном случае вобще невозможно..
...
Рейтинг: 0 / 0
Временные таблицы (#) в VFP
    #33063746
Yura .
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Зря ты не хочешь это сделать внешней фоксовой программой. Элементарно подключиться к парусячьей базе, выполнить всю обработку информации, подготовить результат в таком виде, который возмет 1С в стандартной комплектации и закончит работу. А то, что в филиалах нет Fox'а, то это только отговорка, никто не мешает эту программу установить там, где она необходима. В любом случае твоя наработка в твоих филиалах как-то должна устанавливаться, точно так-же и установится твоя фоксовая программа.
...
Рейтинг: 0 / 0
Временные таблицы (#) в VFP
    #33064125
leaf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если бы была возможность использовать MS SQL, то вопрос вобще бы не стоял
ну дык и используй мил человек многие почему-то думают что скл-сервер работает только со своими таблицами
...
Рейтинг: 0 / 0
Временные таблицы (#) в VFP
    #33064159
Jarad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Yura.А то, что в филиалах нет Fox'а, то это только отговорка. Никто не мешает эту программу установить там, где она необходима.
:) Вобще анриал. Филиалов много. ИТ-спецов там нет! Командировать меня например, по-очереди по всей стране никто никого не будет. Есть проблемы с лецензированием... весь софт легальный, руководство не пойдет на установку пиратских продуктов...
Yura. В любом случае твоя наработка в твоих филиалах как-то должна устанавливаться, точно так-же и установится твоя фоксовая программа.
Если обработка пишеться в 1С, то она просто запускается в 1С, ничего до-устанавливать не надо... в этом и есть плюс...
leaf
Если бы была возможность использовать MS SQL, то вопрос вобще бы не стоял
ну дык и используй мил человек многие почему-то думают что скл-сервер работает только со своими таблицами

Просто переганять дбф в СКЛ, а потом в клиент (1С), наверное еще хуже. А перевести все дбф базы в СКЛ, начальство за растрату прибьет:))
...
Рейтинг: 0 / 0
Временные таблицы (#) в VFP
    #33064201
leaf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
до чего вы 1С-ники своеобразные
ты BOL для начала почитай вот тебе для затравки а не поймешь значит не поймешь
insert into grptov select * from openrowset ('MSDASQL',
'Driver=Microsoft Visual FoxPro Driver;
SourceDB=d:\skladw\dbf\skl\utf.dbc;
SourceType=DBC,Exclusive=NO,Collate=Russian',
'select id,idlimit,nam,del,codsob,nkas,dc from grptov group by id where del=0')
...
Рейтинг: 0 / 0
Временные таблицы (#) в VFP
    #33064207
leaf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
перевести все дбф базы в СКЛ
а зачем ?
...
Рейтинг: 0 / 0
25 сообщений из 30, страница 1 из 2
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Временные таблицы (#) в VFP
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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