powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / dbf и ODBC
14 сообщений из 14, страница 1 из 1
dbf и ODBC
    #32836064
CruelGenius
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Подскажите может кто знает.
Как работать с датами через запрос ODBC.
Например пишу такой запрос в программке на С++ и передаю драйверу ODBC.
"select * from pr"
получаю всю таблицу dbf от начала до конца и со всеми полями потом перекачиваю ее в FireBird.
Но если нужно получить только с определенной даты в каком формате это дело написать?

обычный запрос типа такого не работает
select * from pr where datotg>='10/12/2004'
возвращает ошибку несовместимый формат данных.

приходится в ручную заходить в foxpro и вручную это делать.
...
Рейтинг: 0 / 0
dbf и ODBC
    #32836074
Станислав C.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CruelGeniusПодскажите может кто знает.
Как работать с датами через запрос ODBC.
Например пишу такой запрос в программке на С++ и передаю драйверу ODBC.
"select * from pr"
получаю всю таблицу dbf от начала до конца и со всеми полями потом перекачиваю ее в FireBird.
Но если нужно получить только с определенной даты в каком формате это дело написать?

обычный запрос типа такого не работает
select * from pr where datotg>='10/12/2004'
возвращает ошибку несовместимый формат данных.

приходится в ручную заходить в foxpro и вручную это делать.
Вообще-то Ваш вопрос задан не "в том месте". Однако отвечу, так как сам пишу на С++.
В приведенном Вами запросе тип Date/DateTime сравнивается с типом Char[10]. А это не совсем одно и то же (о чем Вам и сообщает драйвер).
Есть два пути:
1. Использовать параметризованные запросы, например:
select * from pr where datotg>=:DATA,
где параметру DATA при преобразовании передается нужное значение
(я работаю в C++Builder и там такое работает "на ура")
2. Преобразовывать поле datotg к текстовому виду, а затем в "фильтре" запроса (where...) сравнивать две строки...
...
Рейтинг: 0 / 0
dbf и ODBC
    #32836090
дата в FoxPro обычно заключается в фигурные скобочки
select * from pr where datotg>={10.12.2004}
...
Рейтинг: 0 / 0
dbf и ODBC
    #32836150
golsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Формат даты зависит от локальных настроек компа - поэтому лучше не рисковать. Преобразовывай в текст и сравнивай как две строки.
...
Рейтинг: 0 / 0
dbf и ODBC
    #32836273
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
golsaФормат даты зависит от локальных настроек компа - поэтому лучше не рисковать. Преобразовывай в текст и сравнивай как две строки.
Начиная с VFP6 в FoxPro введен универсальный формат даты не зависящий от региональных настроек среды FoxPro.

{^YYYY-MM-DD HH:MM:SS}

В качестве разделителя в части даты можно использовать символы: дефис, слеш, точка.

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

{^YYYY/MM/DD}

Для использования в датах региональных настроек FoxPro надо изменить настройку SET STRICTDATE
...
Рейтинг: 0 / 0
dbf и ODBC
    #32836471
CruelGenius
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Наверное вопрос задан не в том месте.
Но все таки dbf файл все таки ближе к Foxpro.
пробовал по всякому и с фигурными и без фигурных.
set strictdate работает в самой fxopro.

В моем случае голый драйвер ODBC который работает с dbf файлами.
И как ни пишу строку не выходит, получаю либо не совместный формат либо ошибка синтаксиса. Преобразовать в строки и анализировать полученные строки конечно можно. Но в том и смысл чтобы задать
строку
select * from pr_k where datotg>=DATE чтобы выбрал сам драйвер.


А не заходить в Foxpro не делать это вручную
...
Рейтинг: 0 / 0
dbf и ODBC
    #32836505
Станислав C.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CruelGenius Но в том и смысл чтобы задать строку
select * from pr_k where datotg>=DATE чтобы выбрал сам драйвер.
А не заходить в Foxpro не делать это вручную
Блин, я ругаться чичас буду... :)
Сделай параметризованный запрос, преобразовывай DATE в тип Date и заноси это преобразованное значение в параметр запроса...
И вообще, это вопрос из раздела по С++. Туда и обращайся (там дадут более квалифицированные ответы, естественно после уточнения версии IDE (Borland C++Builder / VC++ /...))
...
Рейтинг: 0 / 0
dbf и ODBC
    #32836518
-ноль-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Блин, не парся ты с дравами, все равно он не документирован. Напиши ты на фоксе OLE server и дергай его метод. Курсор с данными можо передавать
как масив, в конце- концов. Если конечно не болше 2 гигов.
...
Рейтинг: 0 / 0
dbf и ODBC
    #32837983
Igor Korolyov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hi ВладимирМ!

> Для использования в датах региональных настроек FoxPro надо изменить
> настройку SET STRICTDATE

Это не про то - это про то будет или не будет фокс ругаться на НЕоднозначные
форматы даты - т.е. где нету "крышки" внутри скобок и соответственно
непонятен формат - дни перед месяцами или наоборот...

2 CruelGenius

Ты попробовал именно так (с точностью до символа) задавать запрос:

select * from pr where datotg>={^2004/12/10}

2 Станислав C.

Хотя вариант с параметризованным запросом выглядит более красивым и
правильным, но то ж ещё понимать надо как их строить, как параметры задавать
и т.п. :)

P.S. Естественно подразумевается что используется самый последний "VFP ODBC
Driver" - версии 6.1.8629.1 - свободно доступный с сайта MS - не хватало ещё
старые глюки вылавливать :)

Posted via ActualForum NNTP Server 1.1
...
Рейтинг: 0 / 0
dbf и ODBC
    #32838029
CruelGenius
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Станислав C. CruelGenius Но в том и смысл чтобы задать строку
select * from pr_k where datotg>=DATE чтобы выбрал сам драйвер.
А не заходить в Foxpro не делать это вручную
Блин, я ругаться чичас буду... :)
Сделай параметризованный запрос, преобразовывай DATE в тип Date и заноси это преобразованное значение в параметр запроса...
И вообще, это вопрос из раздела по С++. Туда и обращайся (там дадут более квалифицированные ответы, естественно после уточнения версии IDE (Borland C++Builder / VC++ /...))

Хорошо захожу в excel word пишу на VBA, на нем я пишу все отчеты даю туже строку не работает. Это вопрос не из раздела C++, а из раздела dbf через ODBC.
У меня ODBC manager который принимает строку запроса, на всех базах работает, типа Firebird, IB, MS SQL, и тп. А с dbf не хочет.
...
Рейтинг: 0 / 0
dbf и ODBC
    #32838030
CruelGenius
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Igor Korolyov

Ты попробовал именно так (с точностью до символа) задавать запрос:

select * from pr where datotg>={^2004/12/10}

Именно так пробовал

Igor Korolyov
P.S. Естественно подразумевается что используется самый последний "VFP ODBC
Driver" - версии 6.1.8629.1 - свободно доступный с сайта MS - не хватало ещё
старые глюки вылавливать :)

Posted via ActualForum NNTP Server 1.1
А вот это надо проверить пойду ка скачаю.
...
Рейтинг: 0 / 0
dbf и ODBC
    #32838032
CruelGenius
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
-ноль-Блин, не парся ты с дравами, все равно он не документирован. Напиши ты на фоксе OLE server и дергай его метод. Курсор с данными можо передавать
как масив, в конце- концов. Если конечно не болше 2 гигов.

Не хочу изучать VFP6 не хочу. Мне надо то пару файлов перекачивать.
Лучше уж тогда по ночам пусть таблицы перекачивает с начала года. Компьютер железный он не спит.
...
Рейтинг: 0 / 0
dbf и ODBC
    #32838037
CruelGenius
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
dbf и ODBC
    #32838038
CruelGenius
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
select * from pr where datotg>={^2004/12/10}
помогло после выбора драйвера Visual Foxpro
VFP ODBC Driver" - версии 6.1.8629.1
а я-то наивнейший использовал dbf драйвер.
Всем спасибо. Теперь то что надо
...
Рейтинг: 0 / 0
14 сообщений из 14, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / dbf и ODBC
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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