Форум: "Начинающим";
Текущий архив: 2011.03.06;
Скачать: [xml.tar.bz2];
Внизнесоответствие типов Найти похожие ветки
← →
RUu (2010-12-15 13:36) [0]Получаю несоответствие типов данных выражению условия отбора.
SELECT Цена, [Код товара], Дата, [Код склада]
FROM Цены ps1
WHERE ([Код товара]=:param2) and ([Код пункта]=:param3)
and (Дата=(select max(Дата) from Цены ps2 where (ps1.[Код товара]=ps2.[Код товара])and(ps1.[Код склада]=ps2.[Код склада])and(ps1.Дата=ps2.Дата))
and(ps2.Дата<=:param1))
Если убрать строкуand(ps2.Дата<=:param1)
то все работает.
:param1 типа ftDateTime, я туда загоняю дату формата dd.mm.yyyy hh:mm.ss, а Access формат этого поля Дата/время, полный.
В чем может быть дело?
← →
Ega23 © (2010-12-15 13:39) [1]
> В чем может быть дело?
В том, что формат dd.mm.yyyy hh:mm.ss - это строка. А поле - ftDateTime.
← →
Anatoly Podgoretsky © (2010-12-15 13:46) [2]> RUu (15.12.2010 13:36:00) [0]
А зачем ты туда загоняешь текст, вот и ругается, ты туда загоняй дату,
конечно если поле ps2.Дата это дата.
← →
stas © (2010-12-15 15:36) [3]RUu (15.12.10 13:36)
Посмотри как access делает, он дату в ## берет. А чем параметры не устраивают?
← →
Ega23 © (2010-12-15 15:39) [4]
> А чем параметры не устраивают?
Так он использует параметры. Просто скармливает ему не то, что требуется.
Либо поставить ParamCheck := False, добавить параметры ручками и для param1 прописать DataType := ftString
Либо этого не делать, но тогда в ParamByName("param1").Value пихать именно TDateTime, а не строку в Access-формате даты.
← →
stas © (2010-12-15 15:43) [5]Ega23 © (15.12.10 15:39) [4]
А! я не так понял. )
← →
Anatoly Podgoretsky © (2010-12-15 16:02) [6]
> а не строку в Access-формате даты.
Так он даже сует не в этом формате, а в другом.
← →
Ega23 © (2010-12-15 16:09) [7]
> Так он даже сует не в этом формате, а в другом.
Я в Access не бум-бум, но вот товарищ пишет:
> я туда загоняю дату формата dd.mm.yyyy hh:mm.ss, а Access
> формат этого поля Дата/время, полный.
← →
Anatoly Podgoretsky © (2010-12-15 16:17) [8]> Ega23 (15.12.2010 16:09:07) [7]
А формат #MM/DD/YYYY hh:mm:ss#
У фокспро например совсем другой формат
и так далее.
Конечно VCL немного стирает грани.
← →
Ega23 © (2010-12-15 16:31) [9]
> А формат #MM/DD/YYYY hh:mm:ss#
А, ну тогда другое дело.
Хотя всё равно это не отменяет несоответствия типов параметров. :)
← →
Anatoly Podgoretsky © (2010-12-15 16:34) [10]> Ega23 (15.12.2010 16:31:09) [9]
Ни в коей мере.
← →
RUu (2010-12-16 03:48) [11]
> Так он использует параметры. Просто скармливает ему не то,
> что требуется.
> Либо поставить ParamCheck := False, добавить параметры ручками
> и для param1 прописать DataType := ftString
> Либо этого не делать, но тогда в ParamByName("param1").Value
> пихать именно TDateTime, а не строку в Access-формате даты.
>
Так я туда дату загоняю именно как р-т ф-и strtodatetime, а не строкой.
← →
RUu (2010-12-17 10:36) [12]Поставил такое условие в выражении:
and (m2.Дата <= #12.12.2010# )
Получаю ошибку "Дата содержит синтаксическую ошибку в выражении запроса
"(ps1.[Код товара]=ps2.[Код товара])and(ps1.[Код склада]=ps2.[Код склада])and(ps1.Дата=ps2.Дата))
and(ps2.Дата<= #12.12.2010# "
" и далее все условия запроса. А как только условие
and (m2.Дата < #12.12.2010# )
удаляешь так все работает. Так какая ошибка-то? Все и так уже по справке.
Дата в таблице типа "Дата/время", форматы разные пробовал - и полный и краткий. Приведу еще раз запрос:SELECT Цена, [Код товара], Дата, [Код склада]
FROM Цены ps1
WHERE ([Код товара]=2) and ([Код пункта]=8)
and (Дата=(select max(Дата) from Цены ps2 where (ps1.[Код товара]=ps2.[Код товара])and(ps1.[Код склада]=ps2.[Код склада])and(ps1.Дата=ps2.Дата))
and(ps2.Дата<= #12.12.2010# ))
Вы видите здесь ошибку?
← →
Ega23 © (2010-12-17 10:47) [13]
> Вы видите здесь ошибку?
Да. Тебе её уже указали.
← →
RUu (2010-12-17 10:49) [14]Повторите еще раз, пожалуйста, если не затруднит! Вот что конкретно в тексте запроса нужно поправить?
← →
Ega23 © (2010-12-17 10:52) [15]Ты вообще как, ответы читаешь, не?
← →
RUu (2010-12-17 10:54) [16]Да я это в самом акцессе запускаю уже не из Delphi.
← →
sniknik © (2010-12-17 10:55) [17]> Поставил такое условие в выражении:
> and (m2.Дата <= #12.12.2010# )
> Получаю ошибку "Дата содержит синтаксическую ошибку в выражении запроса
> Anatoly Podgoretsky © (15.12.10 16:17) [8]
>> Ega23 (15.12.2010 16:09:07) [7]
> А формат #MM/DD/YYYY hh:mm:ss#
> У фокспро например совсем другой формат
> и так далее.
найди 10 отличий... ну и дальше не менее важно, обратить внимание на "совсем другой формат"
← →
sniknik © (2010-12-17 10:57) [18]> Вот что конкретно в тексте запроса нужно поправить?
это здесь так не работает. за тебя писать никто не будет, особенно после явно указанного глюка.
> Да я это в самом акцессе запускаю уже не из Delphi.
и что? должна быть разница? обьект тот же.
← →
RUu (2010-12-17 10:57) [19]Ну сделал так:
and (m2.Дата < #12/12/2010 12:00:00# )
Не катит
← →
sniknik © (2010-12-17 10:58) [20]> Не катит
кантуй
← →
Ega23 © (2010-12-17 10:59) [21]
> Ну сделал так:
Может всё-таки "ну хелп почитаешь"? К Access?
А то гадать до следующего года будешь. А там 3 пропущенных экзамена, потом военком, сапоги....
← →
RUu (2010-12-17 11:04) [22]Ну все всем огромное спасибо, разобрался!!
← →
Anatoly Podgoretsky © (2010-12-17 11:25) [23]
> Вы видите здесь ошибку?
Да конечно, это и не число и не строка.
← →
Anatoly Podgoretsky © (2010-12-17 11:26) [24]> RUu (17.12.2010 10:54:16) [16]
А зачем тогда обсужждаешь в форуме Дельфи, а не в Акцесс?
Не боишься, что тему закроют по этому признаку?
← →
Anatoly Podgoretsky © (2010-12-17 11:27) [25]> sniknik (17.12.2010 10:55:17) [17]
И это должно быть строкой!
← →
Anatoly Podgoretsky © (2010-12-17 11:27) [26]> RUu (17.12.2010 10:57:19) [19]
Чукча не читатель.
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2011.03.06;
Скачать: [xml.tar.bz2];
Память: 0.51 MB
Время: 0.003 c