powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Запрос в FoxPro
11 сообщений из 11, страница 1 из 1
Запрос в FoxPro
    #33060615
Jarad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Подключаюсь из 1с к дбф-базе, через ВФП драйвер, подключение проходит нормально.
Но, при выполнении такого запроса, выдает ошибку синтаксиса...
В чем она может заключаться? Или ВФП еще чем-то кроме CASE отличается от стандартного SQL.
SELECT Дата,
Документ As [Документ $Документ],
SUM (СуммаРасход) As СуммаРасход,
SUM (СуммаВозврат) As СуммаВозврат
FROM (
SELECT Ж.DATE AS Дата,
Ж.iddocdef AS Вид,
Ж.iddocdef+Ж.IDDOC As Документ,
Д.SP7989 AS [Склад $Справочник.МестаХранения],
ТЧ.SP8003 AS [Товар $Справочник.ТМЦ],
ТЧ.SP8009 AS Сумма,
IIF (Д.SP7998 = 0,ТЧ.SP8009,0) As СуммаРасход,
IIF (Д.SP7998 = 1,ТЧ.SP8009,0) As СуммаВозврат
FROM 1sjourn AS Ж
LEFT OUTER JOIN $Документ.Т_ЧекКА AS Д
ON Д.IDDOC = Ж.IDDOC
LEFT OUTER JOIN $ДокументСтроки.Т_ЧекКА AS ТЧ
ON ТЧ.IDDOC = Ж.IDDOC
WHERE (IDDOCDEF LIKE '%66K%') AND
(Ж.DATE >= '01.04.2005') AND
(Ж.DATE < '01.05.2005')
) TMP
GROUP BY Дата,Документ
ORDER BY Дата,Документ
...
Рейтинг: 0 / 0
Запрос в FoxPro
    #33060699
sandy2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Запустите VFP , вставте в командную строку запрос и выполните. Сообщение об ошибке будет будет подробно говорить об ошибке. Если, ошибки не будет, то возможно в строке подключения неправильный путь к таблице.
...
Рейтинг: 0 / 0
Запрос в FoxPro
    #33060717
Jarad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Проблема в том что самого ФП нету, подключаюсь то через ОДБС.
...
Рейтинг: 0 / 0
Запрос в FoxPro
    #33060776
sandy2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Покажите строку подключения, и структуры таблиц с заполнением по 1 строке. Я проверю у себя.
...
Рейтинг: 0 / 0
Запрос в FoxPro
    #33060814
Jarad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Путь = КаталогИБ();
Рез = db.Соединение("DRIVER=Microsoft Visual FoxPro Driver; Deleted=No;Null=Yes;Collate=RUSSIAN; Exclusive=No;SourceType=DBF;SourceDB=" + Путь);
Журнал, структура
...
Рейтинг: 0 / 0
Запрос в FoxPro
    #33060817
Jarad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
$Документ.Т_ЧекКА AS Д Структура:
...
Рейтинг: 0 / 0
Запрос в FoxPro
    #33060819
Jarad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
$ДокументСтроки.Т_ЧекКА AS ТЧ Структура
...
Рейтинг: 0 / 0
Запрос в FoxPro
    #33060833
Jarad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Данные из Журнал:
580,LE002,66K,5,12.12.2004,C0MMQ8,80122004,Киев-00001,1,8,6,1,0,1
Из Д:
LE002,AMRK,0,0,1,1.00000,12.12.2004,1002,1,0.00,0.00,0,0,0.00,4MRK,<ПустаяСтрока>
Из ТЧ:
LE002,1,0066-01,1602510-010,1E2WMRK,B1,5B,0,1,14U6MRK,1.000,1.000,28.49,28.49, 0
...
Рейтинг: 0 / 0
Запрос в FoxPro
    #33060883
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В VFP вложенные запросы вида

SELECT tmp.Field FROM (SELECT * FROM tab) tmp

поддерживаются только с 9 версии. В ранних версиях вложенные запросы были допустимы только в директиве WHERE вроде

SELECT * FROM tab WHERE id IN (SELECT id FROM tab)

В данном случае придется делать 2 последовательных запроса.

=================
Кроме того, константа даты записывается в фигурных скобках

Ж.DATE >= {01.04.2005}

Причем формат этой даты (где день, где месяц, а где год) зависит от настройки FoxPro

SET DATE
SET STRICTDATE - это с 6 версии

Начиная с 6 версии FoxPro введен универсальный формат констант даты не зависящий от настроек FoxPro вида:

Ж.DATE >= {^2005-04-01}
...
Рейтинг: 0 / 0
Запрос в FoxPro
    #33061125
Igor Korolyov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hi Jarad!

Поскольку ODBC драйвер по сути основан на 6-й версии фокса (и с тех пор не обновлялся и вряд-ли когда будет обновляться), то такие запросы он не способен выполнять (как справедливо заметил Владимир). Однако VFP OLE DB провайдер есть и версии 9 (причём доступен он совершенно бесплатно с сайта MS) - там запрос такого типа допустим. Про формат даты Владимир тоже упомянул - не забудь. Кроме того меня сильно смущают такие имена таблиц (начинающиеся с $) - никогда так не делал и не удивлюсь если где-то это выйдет боком. Также учти, что конструкции типа
IIF(условие, поле, 0) - теоретически могут привести к тому, что фокс решит сделать это поле типа N(1) и в него потом естественно не влезут нормальные данные - в старых версиях это лечилось через замену 0 на нечто типа 0000.00 - по нужному формату, а в VFP9 (и провайдере в том числе) появилась функция CAST().

Posted via ActualForum NNTP Server 1.1
...
Рейтинг: 0 / 0
Запрос в FoxPro
    #33061892
Jarad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо, советы помогли. Решил еще попробовать с 9,0 версией драйвера. Скачал, установил, но в остастке ODBC, новый драйвер отсутсвует (ни одной строчки с указанием что 9-я версия, есть старая 6-я). Почему так происходит, и как можно обратиться к VFP OLE DB Provider, из строки подключения?
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Запрос в FoxPro
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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