|
|
|
Временные таблицы (#) в VFP
|
|||
|---|---|---|---|
|
#18+
Есть ли возможность в ФП выгружать результаты запроса во временные таблицы (как в MS SQL "#table" "##table")? конструкцией типа: SELECT .... INTO #table, в результате создаться вр.таблица, или создать вр.таблицу командой CREATE TABLE #table (...), а потом использовать запросы типа: INSERT INTO #table (...) SELECT ... FROM .... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.05.2005, 13:02 |
|
||
|
Временные таблицы (#) в VFP
|
|||
|---|---|---|---|
|
#18+
select .... into cursor tmpCur readwrite ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.05.2005, 13:07 |
|
||
|
Временные таблицы (#) в VFP
|
|||
|---|---|---|---|
|
#18+
Этот курсор до использования создавать необходимо? По типу CREATE CURSOR tmpCur.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.05.2005, 13:12 |
|
||
|
Временные таблицы (#) в VFP
|
|||
|---|---|---|---|
|
#18+
С созданием курсоров разобрался. Но не получается после выгрузки в курсор, выполнить запрос SELECT именно к этоиу курсору? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.05.2005, 13:31 |
|
||
|
Временные таблицы (#) в VFP
|
|||
|---|---|---|---|
|
#18+
Нет, если надо Select в курсор, то его не нужно предварительно создавать. Пример Открыта таблица Person Запрос Select * From Person Where RecNo()<100 Into Cursor crsTemp Select crsTemp Browse ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.05.2005, 13:40 |
|
||
|
Временные таблицы (#) в VFP
|
|||
|---|---|---|---|
|
#18+
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. Можно ли проверить записало ли курсор в дбф, или "заставить" записать, чтобы можно было нормальным селектом обратиться к курсору (т.е. результату первого запроса) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.05.2005, 13:50 |
|
||
|
Временные таблицы (#) в VFP
|
|||
|---|---|---|---|
|
#18+
Ну для начала сделай простой пример, а потом его усложняй, для этого - Не используй имена полей более 10 знаков - Не используй русские символы в именах полей - Не используй русские символы в имени алиаса - Не используй имя алиаса из одной буквы Кроме того пиши двумя строчками Select tmpCur Browse по крайней мере при соблюдении вышеперечисленных условий у меня еще ни разу проблем с курсорами не возникало. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.05.2005, 14:07 |
|
||
|
Временные таблицы (#) в VFP
|
|||
|---|---|---|---|
|
#18+
Yura .- Не используй имя алиаса из одной буквыОсобенно буквы m ;-))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.05.2005, 14:10 |
|
||
|
Временные таблицы (#) в VFP
|
|||
|---|---|---|---|
|
#18+
Просто я не в "чистом" ФП выполняю запрос. А через ОДБС из 1С подключаюсь к дбф базе. Не работает только выборка из курсора. Могу я указать поля, которые мне нужно опработать во втором запросе, при выборке их из курсора? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.05.2005, 14:12 |
|
||
|
Временные таблицы (#) в VFP
|
|||
|---|---|---|---|
|
#18+
Тут я пас. Попробуй это спросить на территории 1С, может там кто знает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.05.2005, 15:05 |
|
||
|
Временные таблицы (#) в VFP
|
|||
|---|---|---|---|
|
#18+
Мда..на дружественном форуме ответили, что ОДБС с курсорами не дружит, т.е. понятно почему у меня не получается его видеть, и не создается файл... Тогда, напрашивается еще один вариант решения. Можно ли создать на Фоксе CREATE TABLE #tmp_table (описание полей) а потом в нее выгрузить резалт: INSERT INTO #tmp_table (поля) SELECT (поля) FROM ... жизненная ли такая конструкция, есть ли понятие временной таблицы (#), для конктретного пользователя (видит только созавший юзер), и (##) глобальных временных таблиц (видят все)? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.05.2005, 15:14 |
|
||
|
Временные таблицы (#) в VFP
|
|||
|---|---|---|---|
|
#18+
JaradПросто я не в "чистом" ФП выполняю запрос. А через ОДБС из 1С подключаюсь к дбф базе. Не работает только выборка из курсора. Могу я указать поля, которые мне нужно опработать во втором запросе, при выборке их из курсора? Драйверы ODBC IMHO не для того, чтобы воспроизводить среду VFP, а только для того, чтобы выполнять стандартные SQL-запросы select, insert, update, delete. Поэтому бесполезно ему говорить Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.05.2005, 15:19 |
|
||
|
Временные таблицы (#) в VFP
|
|||
|---|---|---|---|
|
#18+
Данилов Юрий Это уже расширение синтаксиса оператора SELECT в самом VFP Так и есть... понял... а предидущий мой пост, реализуем? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.05.2005, 15:22 |
|
||
|
Временные таблицы (#) в VFP
|
|||
|---|---|---|---|
|
#18+
вапще-то нужно говорить что не из среды рабтаеш. У драйвера что-то своё может быть. А так - хелп от вфп и пробуй. В самом вфп можно просто select ... into table c:\table.dbf поддерживает ли это драйвер - читай документацию к драйверу. Опять же какой он версии неизвестно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.05.2005, 15:26 |
|
||
|
Временные таблицы (#) в VFP
|
|||
|---|---|---|---|
|
#18+
Драйвер Microsoft Visual FoxPro Driver 6.01, подключаюсь из 1С. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.05.2005, 15:34 |
|
||
|
Временные таблицы (#) в VFP
|
|||
|---|---|---|---|
|
#18+
JaradТогда, напрашивается еще один вариант решения. Можно ли создать на Фоксе CREATE TABLE #tmp_table (описание полей) а потом в нее выгрузить резалт: INSERT INTO #tmp_table (поля) SELECT (поля) FROM ... жизненная ли такая конструкция, есть ли понятие временной таблицы (#), для конктретного пользователя (видит только созавший юзер), и (##) глобальных временных таблиц (видят все)? На Фоксе возможно все. Только тогда зачем CREATE и потом INSERT...from SELECT? Достаточно SELECT ... INTO CURSOR crsName, одним оператором получаешь свой резалт. Понятие временной таблицы, видной только создателю - это и есть тот самый CURSOR, создается в памяти, на диск по возможности, пока есть свободный RAM, не пишется, если не хватает - то реализуется через .TMP-файл. Не читаешь, похоже, доки, в которые тебя тычут... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.05.2005, 16:22 |
|
||
|
Временные таблицы (#) в VFP
|
|||
|---|---|---|---|
|
#18+
Данилов Юрий Не читаешь, похоже, доки, в которые тебя тычут... Доки читаю. Про курсоры понял, но они от этого у меня работать не будут. Как и не работает конструкция типа select ... into table tmp, это тоже, наверное, фоксовое расширение синтаксиса селекта. Драйвер сильно урезает возможности оперирования с данными. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.05.2005, 16:34 |
|
||
|
Временные таблицы (#) в VFP
|
|||
|---|---|---|---|
|
#18+
так просто мимоходом там кажеться в 7.7 был то ли объектик то ли агрегатный тип данных то ли что-то из метаданных как это у вас называеться короче эта штука специально для работы с таблицами дбф создана инициализиреется по типу создания нового документа вот с ней и нужно работать а что медленно это к разработчикам 1С уже надо или закачайте все на скл_сервер и работайте так как Вы рассказываете через Ваши временные таблицы он у Вас посредником будет з.ы. это не одбс плохой а 1С урезаный язык хотя на нем тоже работать можно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.05.2005, 17:02 |
|
||
|
Временные таблицы (#) в VFP
|
|||
|---|---|---|---|
|
#18+
1с язык конечно ограниченый, с дбф он работать позволяет, но мне нужен функционал построения СКЛ-запросов в 1с, такое реализуется только через ОДБС или АДО, и вот тут вылазят "грабли", типа того что драйвер ОДБС 6-й версии (с которым 1с работает) не поддерживает подзапросы, приходиться работать со временными таблицами, которые тоже драйвером не поддерживаются... Если бы была возможность использовать MS SQL, то вопрос вобще бы не стоял, из 1с можно постоить запрос любой степени сложности и вложенности к MS SQL (тут и драйвера и СУБД позволяет), но задача будет выполняться на туевой туче удаленных рабочих мест, где не то что MS SQL остсутвует, слава Богу что дбф работает... А обработать дбфы средствами языка 1с в данном случае вобще невозможно.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.05.2005, 18:11 |
|
||
|
Временные таблицы (#) в VFP
|
|||
|---|---|---|---|
|
#18+
Зря ты не хочешь это сделать внешней фоксовой программой. Элементарно подключиться к парусячьей базе, выполнить всю обработку информации, подготовить результат в таком виде, который возмет 1С в стандартной комплектации и закончит работу. А то, что в филиалах нет Fox'а, то это только отговорка, никто не мешает эту программу установить там, где она необходима. В любом случае твоя наработка в твоих филиалах как-то должна устанавливаться, точно так-же и установится твоя фоксовая программа. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2005, 08:17 |
|
||
|
Временные таблицы (#) в VFP
|
|||
|---|---|---|---|
|
#18+
Если бы была возможность использовать MS SQL, то вопрос вобще бы не стоял ну дык и используй мил человек многие почему-то думают что скл-сервер работает только со своими таблицами ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2005, 11:09 |
|
||
|
Временные таблицы (#) в VFP
|
|||
|---|---|---|---|
|
#18+
Yura.А то, что в филиалах нет Fox'а, то это только отговорка. Никто не мешает эту программу установить там, где она необходима. :) Вобще анриал. Филиалов много. ИТ-спецов там нет! Командировать меня например, по-очереди по всей стране никто никого не будет. Есть проблемы с лецензированием... весь софт легальный, руководство не пойдет на установку пиратских продуктов... Yura. В любом случае твоя наработка в твоих филиалах как-то должна устанавливаться, точно так-же и установится твоя фоксовая программа. Если обработка пишеться в 1С, то она просто запускается в 1С, ничего до-устанавливать не надо... в этом и есть плюс... leaf Если бы была возможность использовать MS SQL, то вопрос вобще бы не стоял ну дык и используй мил человек многие почему-то думают что скл-сервер работает только со своими таблицами Просто переганять дбф в СКЛ, а потом в клиент (1С), наверное еще хуже. А перевести все дбф базы в СКЛ, начальство за растрату прибьет:)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2005, 11:20 |
|
||
|
Временные таблицы (#) в VFP
|
|||
|---|---|---|---|
|
#18+
до чего вы 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') ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2005, 11:33 |
|
||
|
|

start [/forum/topic.php?fid=41&msg=33062258&tid=1594253]: |
0ms |
get settings: |
9ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
186ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
65ms |
get tp. blocked users: |
1ms |
| others: | 220ms |
| total: | 514ms |

| 0 / 0 |
