Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Временные таблицы (#) в VFP / 25 сообщений из 30, страница 1 из 2
13.05.2005, 13:02
    #33062064
Jarad
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Временные таблицы (#) в VFP
Есть ли возможность в ФП выгружать результаты запроса во временные таблицы (как в MS SQL "#table" "##table")? конструкцией типа:
SELECT .... INTO #table, в результате создаться вр.таблица,
или создать вр.таблицу командой CREATE TABLE #table (...),
а потом использовать запросы типа:
INSERT INTO #table (...)
SELECT ... FROM ....
...
Рейтинг: 0 / 0
13.05.2005, 13:07
    #33062096
Crip
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Временные таблицы (#) в VFP
select .... into cursor tmpCur readwrite
...
Рейтинг: 0 / 0
13.05.2005, 13:12
    #33062125
Jarad
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Временные таблицы (#) в VFP
Этот курсор до использования создавать необходимо?
По типу CREATE CURSOR tmpCur..
...
Рейтинг: 0 / 0
13.05.2005, 13:13
    #33062127
ВладимирМ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Временные таблицы (#) в VFP
...
Рейтинг: 0 / 0
13.05.2005, 13:31
    #33062209
Jarad
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Временные таблицы (#) в VFP
С созданием курсоров разобрался.
Но не получается после выгрузки в курсор, выполнить запрос SELECT именно к этоиу курсору?
...
Рейтинг: 0 / 0
13.05.2005, 13:40
    #33062258
Yura .
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Временные таблицы (#) в VFP
Нет, если надо Select в курсор, то его не нужно предварительно создавать.
Пример
Открыта таблица Person
Запрос
Select * From Person Where RecNo()<100 Into Cursor crsTemp
Select crsTemp
Browse
...
Рейтинг: 0 / 0
13.05.2005, 13:50
    #33062305
Jarad
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Временные таблицы (#) в VFP
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
13.05.2005, 14:07
    #33062369
Yura .
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Временные таблицы (#) в VFP
Ну для начала сделай простой пример, а потом его усложняй, для этого
- Не используй имена полей более 10 знаков
- Не используй русские символы в именах полей
- Не используй русские символы в имени алиаса
- Не используй имя алиаса из одной буквы
Кроме того пиши двумя строчками
Select tmpCur
Browse
по крайней мере при соблюдении вышеперечисленных условий у меня еще ни разу проблем с курсорами не возникало.
...
Рейтинг: 0 / 0
13.05.2005, 14:10
    #33062381
Urri
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Временные таблицы (#) в VFP
Yura .- Не используй имя алиаса из одной буквыОсобенно буквы m ;-)))
...
Рейтинг: 0 / 0
13.05.2005, 14:12
    #33062393
Jarad
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Временные таблицы (#) в VFP
Просто я не в "чистом" ФП выполняю запрос. А через ОДБС из 1С подключаюсь к дбф базе. Не работает только выборка из курсора.
Могу я указать поля, которые мне нужно опработать во втором запросе, при выборке их из курсора?
...
Рейтинг: 0 / 0
13.05.2005, 15:05
    #33062599
Yura .
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Временные таблицы (#) в VFP
Тут я пас.
Попробуй это спросить на территории 1С, может там кто знает.
...
Рейтинг: 0 / 0
13.05.2005, 15:14
    #33062631
Jarad
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Временные таблицы (#) в VFP
Мда..на дружественном форуме ответили, что ОДБС с курсорами не дружит, т.е. понятно почему у меня не получается его видеть, и не создается файл...
Тогда, напрашивается еще один вариант решения.
Можно ли создать на Фоксе
CREATE TABLE #tmp_table (описание полей)
а потом в нее выгрузить резалт:
INSERT INTO #tmp_table (поля)
SELECT (поля) FROM ...
жизненная ли такая конструкция, есть ли понятие временной таблицы (#), для конктретного пользователя (видит только созавший юзер), и (##) глобальных временных таблиц (видят все)?
...
Рейтинг: 0 / 0
13.05.2005, 15:19
    #33062649
Данилов Юрий
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Временные таблицы (#) в VFP
JaradПросто я не в "чистом" ФП выполняю запрос. А через ОДБС из 1С подключаюсь к дбф базе. Не работает только выборка из курсора.
Могу я указать поля, которые мне нужно опработать во втором запросе, при выборке их из курсора?
Драйверы ODBC IMHO не для того, чтобы воспроизводить среду VFP, а только для того, чтобы выполнять стандартные SQL-запросы select, insert, update, delete. Поэтому бесполезно ему говорить
Код: plaintext
select ... into cursor crsName
Это уже расширение синтаксиса оператора SELECT в самом VFP
...
Рейтинг: 0 / 0
13.05.2005, 15:22
    #33062658
Jarad
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Временные таблицы (#) в VFP
Данилов Юрий Это уже расширение синтаксиса оператора SELECT в самом VFP
Так и есть... понял...
а предидущий мой пост, реализуем?
...
Рейтинг: 0 / 0
13.05.2005, 15:26
    #33062672
1024
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Временные таблицы (#) в VFP
вапще-то нужно говорить что не из среды рабтаеш. У драйвера что-то своё может быть. А так - хелп от вфп и пробуй. В самом вфп можно просто

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

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

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

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

Просто переганять дбф в СКЛ, а потом в клиент (1С), наверное еще хуже. А перевести все дбф базы в СКЛ, начальство за растрату прибьет:))
...
Рейтинг: 0 / 0
14.05.2005, 11:33
    #33064201
leaf
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Временные таблицы (#) в VFP
до чего вы 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
14.05.2005, 11:34
    #33064207
leaf
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Временные таблицы (#) в VFP
перевести все дбф базы в СКЛ
а зачем ?
...
Рейтинг: 0 / 0
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Временные таблицы (#) в VFP / 25 сообщений из 30, страница 1 из 2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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