Форум: "Начинающим";
Текущий архив: 2010.09.12;
Скачать: [xml.tar.bz2];
ВнизДинамические запросы Найти похожие ветки
← →
Desyatnik (2010-06-16 12:57) [0]Добрый день, господа программисты!
Проблема с датами с Субд Access
вот такой код
ADOQuery1.Active:=false;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add("Insert into ArhivZAKAZ");
ADOQuery1.SQL.Add("SELECT *");
ADOQuery1.SQL.Add("From ZAKAZ");
ADOQuery1.SQL.Add("Where Data_zakaza<"""+dateTostr(date-30)+"""");
ADOQuery1.ExecSQL;
Говорит "Несответствие типов в условии"
Как решить этоту проблему.
← →
ixen © (2010-06-16 13:13) [1]
> date-30
это ты от Tdate отнимаешь целое число? тут нужноincday(daye,-30)
← →
Правильный$Вася (2010-06-16 13:14) [2]потому что дату надо передавать как параметр, а не строкой неизвестного формата
ADOQuery1.SQL.Add("Where Data_zakaza<:P1");
ADOQuery1.SQL.ParamByName("P1").AsDate:=date-30;
← →
Ega23 © (2010-06-16 13:29) [3]
> ixen © (16.06.10 13:13) [1]
> это ты от Tdate отнимаешь целое число? тут нужно incday(daye, -30)
Иногда лучше жевать, чем говорить.unit System
TDateTime = type Double;
← →
12 © (2010-06-16 13:31) [4]
> это ты от Tdate отнимаешь целое число? тут нужно incday(daye,
> -30)
function IncDay(const AValue: TDateTime;
const ANumberOfDays: Integer): TDateTime;
begin
Result := AValue + ANumberOfDays;
end;
Автору
см.2
+
> с датами с Субд Access
вообще проблемы, имхо
У меня один и тот же код с параметрами работает в mssql и oracle - но не хочет в Access..
> ParamByName("P1").AsDate:=date-30;
писал, не понимает. Толи поле как не так определял, толь лыжи не ехали :)
а потом переделал все заново, вроде также все делал - но работает уже..
а т.к. чудес не бывает - значит, что-то по-другому все же сделал..
← →
Desyatnik (2010-06-16 13:40) [5]А какой синтаксис в строке
ADOQuery1.SQL.Add("Where Data_zakaza<"""+incday(date-30)+"""");
← →
Desyatnik (2010-06-16 13:41) [6]такая же проблема в парадокс все работает, а акссе нет
← →
Плохиш © (2010-06-16 13:46) [7]
> Desyatnik (16.06.10 13:40) [5]
Читать [2] как мантру вместо завтрака, обеда и ужина.
← →
ixen © (2010-06-16 13:51) [8]попробуй так:
ADOQuery1.SQL.Add("Where Data_zakaza< quotedstr(datetostr(date-30)));
← →
ixen © (2010-06-16 13:53) [9]ой... ошибка.. вот так:
> ADOQuery1.SQL.Add("Where Data_zakaza< "+quotedstr(datetostr(date-
> 30)));
← →
Desyatnik (2010-06-16 13:58) [10]ADOQuery1.SQL.ParamByName("P1").AsDate:=date-30;
Я да же не сомневаюсь, что это правильно, возможно я что-то не учитываю
Undeclared identifier: "ParamByName" - выдает на эту строку
← →
Ega23 © (2010-06-16 14:01) [11]
> Я да же не сомневаюсь, что это правильно, возможно я что-
> то не учитываю
> Undeclared identifier: "ParamByName" - выдает на эту строку
SQL убери
← →
Ega23 © (2010-06-16 14:02) [12]
> ixen © (16.06.10 13:51) [8]
>
> попробуй так:
> ADOQuery1.SQL.Add("Where Data_zakaza< quotedstr(datetostr(date-
> 30)));
Настоятельно рекомендую прочитать [2], выучить наизусть как телефон любимой девушки и никогда больше не давать начинающим идиотских и неправильных советов.
← →
Правильный$Вася (2010-06-16 14:03) [13]
> Undeclared identifier: "ParamByName" - выдает на эту строку
F1 на ParamByName - и читаем
← →
Anatoly Podgoretsky © (2010-06-16 14:11) [14]> Правильный$Вася (16.06.2010 14:03:13) [13]
Опять читаем, в школе не начитался.
← →
Desyatnik (2010-06-16 14:11) [15]ADOQuery1.SQL.Add("Where Data_zakaza<:P1");
ADOQuery1.Parameters.ParamByName("P1").Value:=date-30;
Это выглядит вот так и все же не соответствие типов в выражении
← →
Ega23 © (2010-06-16 14:13) [16]
> Desyatnik (16.06.10 14:11) [15]ADOQuery1.Parameters.ParamByName("P1").Value:=date-30;
Тебе даже текст привели. Ты его даже переписать нормально не можешь (про прочтении справки я уже молчу).
Может всё-таки сменить профессию, пока не поздно?
← →
Anatoly Podgoretsky © (2010-06-16 14:26) [17]> Desyatnik (16.06.2010 14:11:15) [15]
Не важно как выглядит, важно как работает.
← →
ixen © (2010-06-16 14:32) [18]
> Настоятельно рекомендую прочитать [2], выучить наизусть
> как телефон любимой девушки и никогда больше не давать начинающим
> идиотских и неправильных советов.
я с акцессом не работал.. просто привел запрос который работает на ферберде... я же написал ПОПРОБУЙ и не утверждал что он правильный...
← →
Ega23 © (2010-06-16 14:48) [19]
> я с акцессом не работал.. просто привел запрос который работает
> на ферберде... я же написал ПОПРОБУЙ и не утверждал что
> он правильный...
А не в СУБД дело. Тебе в принципе повезло, что оно работает. Изменится у FB релиз - всё, привет.
← →
Anatoly Podgoretsky © (2010-06-16 14:48) [20]
> просто привел запрос который работает на ферберде
Вообще то он рабочий только в частных случаях.
← →
Anatoly Podgoretsky © (2010-06-16 14:50) [21]
> Изменится у FB релиз - всё, привет.
Ну так долго ждать не надо, достаточно несоответсвующую локализацию или кривые компоненты, которые меняют региональные настройки и приплыли.
← →
Ega23 © (2010-06-16 15:01) [22]
> Ну так долго ждать не надо, достаточно несоответсвующую
> локализацию или кривые компоненты, которые меняют региональные
> настройки и приплыли.
Ну это ещё поправить можно. А вот релиз новый - уже нет. :)
← →
Desyatnik (2010-06-16 15:31) [23]Спасибо всем, я программно сделала, через циклы.
Самое интересное, что фильтр работает, а то же условие в запросе нет.
Пока, пока.
← →
Anatoly Podgoretsky © (2010-06-16 15:49) [24]> Ega23 (16.06.2010 15:01:22) [22]
Короче куда ни ткнись, вежде Ж, остается только правильно писать.
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2010.09.12;
Скачать: [xml.tar.bz2];
Память: 0.5 MB
Время: 0.004 c