powered by simpleCommunicator - 2.0.55     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / SQL запрос к *.dbf через ODBC
14 сообщений из 14, страница 1 из 1
SQL запрос к *.dbf через ODBC
    #36357361
shedow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день.
Выбираю данные из таблицы, подключаю через ODBC. Драйвер Microsoft dBase.
Простейший запрос типа:

Код: plaintext
1.
SELECT * FROM TABLE


отрабатывает нормально. Но при попытке работать с датами:

Код: plaintext
1.
2.
SELECT * FROM TABLE WHERE (DateFild = DATE())

вылетает ошибка: "Ошибка в конструкции WHERE рядом с ")"" Правда в visual studio запрос потом таки отрабатывает, но когда подставляю его в целевую программу - вылет. Не понимаю, в чем проблема. Вроде все соответствует спецификации, в сети ничего толкового не нашел.
подскажите, пожалуйста, в чем может быть проблема.
...
Рейтинг: 0 / 0
SQL запрос к *.dbf через ODBC
    #36357499
Ffffffffffffffff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В формате DateFild.
...
Рейтинг: 0 / 0
SQL запрос к *.dbf через ODBC
    #36357505
Ffffffffffffffff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Проверил: скобки тоже не проходят.
...
Рейтинг: 0 / 0
SQL запрос к *.dbf через ODBC
    #36357530
shedow,
вопрос не в тот форум. Драйвер Microsoft dBase не имеет никакого отношения к фоксу.
...
Рейтинг: 0 / 0
SQL запрос к *.dbf через ODBC
    #36357651
Sea_Cat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
shedow,

При передаче запроса должно передаваться значение, а не сама функция, или переменная. Чтобы заставить драйвер вычислить значение, используется знак вопроса:

SELECT * FROM TABLE WHERE DateFild = ?DATE()

а лучше так:

SELECT * FROM TABLE WHERE DateFild = ?DTOS(DATE())

Такой формат даты нормально обрабатывается большинством SQL-серверов.
...
Рейтинг: 0 / 0
SQL запрос к *.dbf через ODBC
    #36357703
FFFFFFFFF
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Sea_Cat, автор работает с dBase-файлами, а не с сервером.
...
Рейтинг: 0 / 0
SQL запрос к *.dbf через ODBC
    #36357944
Sea_Cat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
FFFFFFFFF,

ODBC для того и создан, чтобы максимально абстрагироваться от источника данных - будь он хоть dBase, хоть Oracle, хоть лист Excel. А варианты привел потому, что нет под руками нет ни одного файла dBase - не на чем проверить, какой формат даты подойдет. Формат ГГГГММДД проходит в большинстве случаев.
...
Рейтинг: 0 / 0
SQL запрос к *.dbf через ODBC
    #36358269
Fffffffffffffff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Sea_Cat Формат ГГГГММДД проходит в большинстве случаев.
А с этим никто и не спорил.
...
Рейтинг: 0 / 0
SQL запрос к *.dbf через ODBC
    #36358369
shedow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Sea_Catshedow,



а лучше так:

SELECT * FROM TABLE WHERE DateFild = ?DTOS(DATE())


Такой вариант драйвер совсем не понимает. Да и в описании драйвера указывается просто DATE().
Я за вчера малость повозился с этой ситуацией - сделал запрос, который работает в программе. Но в визуал студио по прежнему проблемы. Видимо это глюки самого визуал студио.
...
Рейтинг: 0 / 0
SQL запрос к *.dbf через ODBC
    #36358406
shedow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PS.

Сменил драйвер на DataDirect - товский. На тот нормальный мануал есть.
...
Рейтинг: 0 / 0
SQL запрос к *.dbf через ODBC
    #36358497
malnevit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
TEXT TO sSqlcmd TEXTMERGE NOSHOW PRETEXT  7 
SELECT t.* FROM TABLE t WHERE DateFild = <<DATE()>>
ENDTEXT 
Типа так. Осталось узнать как обстоят дела с DateFild , о чем тебе уже написали.
Тут же не телепаты, может тебе нужно DateFild.ToStr() = <<DATE()>>, ктож об этом знает. А может ты вообще через LINQ. Вопросы грамотно задавай, а не как быдло.
...
Рейтинг: 0 / 0
SQL запрос к *.dbf через ODBC
    #36358562
shedow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
malnevit
Код: plaintext
1.
2.
TEXT TO sSqlcmd TEXTMERGE NOSHOW PRETEXT  7 
SELECT t.* FROM TABLE t WHERE DateFild = <<DATE()>>
ENDTEXT 
Типа так.

Ты вопрос прочел? Источник - файл dbf, подключение драйвером ODBC. Работа - чистым SQL запросом. Каким боком тут приведенный тобой фоксовский код?


malnevit
а не как быдло.

И тебе всего самого лучшего.
...
Рейтинг: 0 / 0
SQL запрос к *.dbf через ODBC
    #36359126
Нех009877
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Да, уж, дядя, это нужно быть 7 пядей во лбу, чтобы фоксовские данные крутить через ОДБЦ. Гнать вас таких кодеров поганой метлой в дворники.
...
Рейтинг: 0 / 0
SQL запрос к *.dbf через ODBC
    #36359146
Нех009877Да, уж, дядя, это нужно быть 7 пядей во лбу, чтобы фоксовские данные крутить через ОДБЦ. Гнать вас таких кодеров поганой метлой в дворники.А где тут увиделись именно фоксовские данные? Или уже dbf стал чисто фоксовым форматом?
...
Рейтинг: 0 / 0
14 сообщений из 14, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / SQL запрос к *.dbf через ODBC
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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