powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Драйвер ODBC VFP возвращает: Operator/operand type mismatch
25 сообщений из 54, страница 1 из 3
Драйвер ODBC VFP возвращает: Operator/operand type mismatch
    #33548568
firerer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
в предложении WHERE
как дату задать в условие выборки?

SELECT
JOURN.DOCNO AS DOCNUM,
JOURN.DATE AS DOCDATE,
KINDS.sp252 AS KIND,
OWNERAGENTS.DESCR AS OWNERAGENT,
AGENTS.DESCR AS AGENT
FROM
1SJOURN AS JOURN
INNER JOIN
sc204 AS KINDS ON KINDS.ID = sp200
LEFT JOIN
sc14 AS OWNERAGENTS ON OWNERAGENTS.ID = sp286
LEFT JOIN
sc14 AS AGENTS ON AGENTS.ID = sp303
WHERE
JOURN.DATE BETWEEN '16.02.2006' AND '16.02.2006'
...
Рейтинг: 0 / 0
Драйвер ODBC VFP возвращает: Operator/operand type mismatch
    #33548586
PaulWist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если речь идёт о доступе к DBF и тип поля Date, то

Код: plaintext
JOURN.DATE BETWEEN { 16 . 02 . 2006 } AND { 16 . 02 . 2006 }
...
Рейтинг: 0 / 0
Драйвер ODBC VFP возвращает: Operator/operand type mismatch
    #33548620
firerer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
СПасибо. ошибок не выдает, но выборка пустая.:(
да. DATE - поле в дбф. тип - дата.
без условия - выборка заполнена. значения даты за февраль. с условием
WHERE
JOURN.DATE BETWEEN {01.02.2006} AND {28.02.2006}
выборка пустая.

сам дбф смотрю дбф фьювером про
...
Рейтинг: 0 / 0
Драйвер ODBC VFP возвращает: Operator/operand type mismatch
    #33548793
PaulWist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну так уберите сначала Ваши INNER/LEFT и запустите

Код: plaintext
SELECT * FROM 1SJOURN AS JOURN WHERE JOURN.DATE BETWEEN { 1 . 02 . 2006 } AND { 28 . 02 . 2006 }
...
Рейтинг: 0 / 0
Драйвер ODBC VFP возвращает: Operator/operand type mismatch
    #33548982
firerer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
первое что сделал - упростил запрос до:
SELECT
JOURN.DATE AS DOCDATE
FROM
1SJOURN AS JOURN
WHERE
JOURN.DATE BETWEEN {01.02.2006} AND {28.02.2006}

результата не дало.
прошу прощения, но я тут вообще в тупике. грешу на формат даты. к сожалению не знаю как проверить. запрос строю не в фокспе (да и вообще с фоксом незнаком) потому туплю.
...
Рейтинг: 0 / 0
Драйвер ODBC VFP возвращает: Operator/operand type mismatch
    #33549046
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если версия FoxPro 6 или выше, то универсальный формат даты это

{^YYYY.MM.DD}

В качестве разделителя можно указывать символ точки, дефис или наклонную черту. Без разницы. Обрати внимание на символ "^" сразу после фигурной скобки. В младших версиях FoxPro не использовался. Это как раз и является признаком универсального формата даты FoxPro.

Если версия FoxPro младше 6, то следует предварительно сделать настройку формата даты

SET DATE TO GERMAN

Это соответствует настройке вида

{DD.MM.YYYY}

По умолчанию, в FoxPro использовался английский формат даты, т.е.

{MM.DD.YYYY}
...
Рейтинг: 0 / 0
Драйвер ODBC VFP возвращает: Operator/operand type mismatch
    #33549047
Недоходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 firerer
А почему дату пишешь через ".", а не через "/"?
...
Рейтинг: 0 / 0
Драйвер ODBC VFP возвращает: Operator/operand type mismatch
    #33549074
Фотография DIMM@
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну форматы даты устанавливаются след. образом:
set date american -мм/дд/гг
set date ansi -гг.мм.дд
set date british/french -дд/мм/гг
set date german -дд.мм.гг
set date italian -дд-мм-гг
...
Рейтинг: 0 / 0
Драйвер ODBC VFP возвращает: Operator/operand type mismatch
    #33549192
firerer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Застрелите меня:
SELECT
JOURN.DATE AS DOCDATE
FROM
1SJOURN AS JOURN
WHERE
JOURN.DATE BETWEEN {01/02/2006} AND {28/02/2006}

не прошел,
этот вариант тоже:

SET DATE TO GERMAN
SELECT
JOURN.DATE AS DOCDATE
FROM
1SJOURN AS JOURN
WHERE
JOURN.DATE BETWEEN {01.02.2006} AND {28.02.2006}

знчек ^ тож не спасает
2Недоходящий. ниразу невкурсе что в фоксе разделителем в дате является /
2ВладимирМ версия ODBC - 6.1.8629.1
...
Рейтинг: 0 / 0
Драйвер ODBC VFP возвращает: Operator/operand type mismatch
    #33549213
PaulWist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пробуем по рабоче-крестьянски через ф-ию и текущую дату.

Код: plaintext
1.
2.
3.
4.
5.
SELECT
JOURN.DATE AS DOCDATE
FROM 
1SJOURN AS JOURN
WHERE
BETWEEN(JOURN.DATE, DATE() -  15 , DATE())
...
Рейтинг: 0 / 0
Драйвер ODBC VFP возвращает: Operator/operand type mismatch
    #33549226
Sergey Sizov.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: plaintext
1.
SELECT JOURN.DATE AS DOCDATE FROM 1SJOURN AS JOURN;
WHERE JOURN.DATE BETWEEN {^ 2006 - 02 - 01 } AND {^ 2006 - 02 - 28 }
...
Рейтинг: 0 / 0
Драйвер ODBC VFP возвращает: Operator/operand type mismatch
    #33549234
Sergey Sizov.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вдогонку: и никакие SET DATE не нужны.
...
Рейтинг: 0 / 0
Драйвер ODBC VFP возвращает: Operator/operand type mismatch
    #33549350
firerer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2PaulWist с функцией работает
2Sergey Sizov спасибо огромное. работает. но терь в поле DOCNUM кодировка непонятная. вместо "Сч" отображает "`-"
...
Рейтинг: 0 / 0
Драйвер ODBC VFP возвращает: Operator/operand type mismatch
    #33549360
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не уверен, что ODBC такое пропустит, но начиная с 6 версии дату можно указать так:

DATE(YYYY,MM,DD)

Т.е. в функцию Date() передать 3 параметра: год, месяц, день

Код: plaintext
BETWEEN DATE( 2006 , 2 , 1 ) AND DATE( 2006 , 2 , 28 )

И кстати, разве из той программы, откуда ты запускаешь запрос нельзя отловить сообщение об ошибке? Приходит ли какая-то ошибка от ODBC-соединения?
...
Рейтинг: 0 / 0
Драйвер ODBC VFP возвращает: Operator/operand type mismatch
    #33549375
firerer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
вобщем в кодировке ОЕМ получается, а надобы в ANSI
...
Рейтинг: 0 / 0
Драйвер ODBC VFP возвращает: Operator/operand type mismatch
    #33549389
firerer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
в том то и дело что ошибок нет - но и выборка пустая была.
а вообще драйвер сообщает либо синтакс еррор, либо нет колонки ' ', либо неподдерживаемы фразы.ключевые слова - но информации все равно мало.
...
Рейтинг: 0 / 0
Драйвер ODBC VFP возвращает: Operator/operand type mismatch
    #33549415
Фотография DIMM@
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
OEMTOANSI()
ANSITOOEM()
пользуйся
...
Рейтинг: 0 / 0
Драйвер ODBC VFP возвращает: Operator/operand type mismatch
    #33549460
Фотография DIMM@
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
например
replace docnum with oemtoansi (docnum)
...
Рейтинг: 0 / 0
Драйвер ODBC VFP возвращает: Operator/operand type mismatch
    #33549469
Sergey Sizov.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ну, в общем-то, от представления даты в запросе кодовая страница результата не зависит. А CPDBF() для 1SJOURN смотрел? И что там?
...
Рейтинг: 0 / 0
Драйвер ODBC VFP возвращает: Operator/operand type mismatch
    #33549474
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
firererработает. но терь в поле DOCNUM кодировка непонятная. вместо "Сч" отображает "`-"
Посмотри каким-нибудь 16-ричным редактором (Norton Commander, Disco Commander, FAR-manager и т.п.) что записано (какое значение) в 0 и 29 байте заголовка таблицы (первый байт имеет порядковый номер 0)

0 байт - это формат таблицы
29 байт - это кодовая страница

0x65 - 866 - Russian MS-DOS
0xC9 - 1251 - Russian Windows

В принципе, для работы с 6 ODBC еще требуется файл foxpro.int (от слова international). Его надо класть в папку Windows\System или WinNT\System32 (в зависимости от версии Windows) . Скачать можно здесь

http://msdn.microsoft.com/vfoxpro/downloads/download.asp?ID=027
...
Рейтинг: 0 / 0
Драйвер ODBC VFP возвращает: Operator/operand type mismatch
    #33549481
firerer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2DIMM@ прошу прощения, в каком месте?
SELECT
JOURN.DOCNO AS DOCNUM,
JOURN.DATE AS DOCDATE
FROM
1SJOURN AS JOURN
WHERE
JOURN.DATE BETWEEN {^2006-02-01} AND {^2006-02-16}

Работает - токо кодировка неправильная.

SELECT
OEMTOANSI(JOURN.DOCNO) AS DOCNUM,
JOURN.DATE AS DOCDATE
FROM
1SJOURN AS JOURN

WHERE
JOURN.DATE BETWEEN {^2006-02-01} AND {^2006-02-16}

Говорит: Column 'DATE' is not found

если ступил - сильно не пенайте.
...
Рейтинг: 0 / 0
Драйвер ODBC VFP возвращает: Operator/operand type mismatch
    #33549543
Фотография DIMM@
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
перед запросом поставь строку
replace X with ansitooem(X) all
...
Рейтинг: 0 / 0
Драйвер ODBC VFP возвращает: Operator/operand type mismatch
    #33549549
Фотография DIMM@
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
извини

replace docnom with oemtoansi(docnom) all
...
Рейтинг: 0 / 0
Драйвер ODBC VFP возвращает: Operator/operand type mismatch
    #33549602
Sergey Sizov.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2firerer:

А у меня второй запрос работает :) Проверяй буковки/значки в строке команды. :)
...
Рейтинг: 0 / 0
Драйвер ODBC VFP возвращает: Operator/operand type mismatch
    #33549614
firerer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
нулевой байт: 03
29 байт: 4С

Реплэйс перед запросом на результат не влияет
...
Рейтинг: 0 / 0
25 сообщений из 54, страница 1 из 3
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Драйвер ODBC VFP возвращает: Operator/operand type mismatch
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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