Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2010.09.12;
Скачать: CL | DM;

Вниз

Динамические запросы   Найти похожие ветки 

 
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;
Скачать: CL | DM;

Наверх




Память: 0.52 MB
Время: 0.012 c
2-1276588631
_REA
2010-06-15 11:57
2010.09.12
AnsiChar constant


2-1276534233
akosh12345
2010-06-14 20:50
2010.09.12
Вывод кнопок динамически


2-1276273053
worldmen
2010-06-11 20:17
2010.09.12
Глюк при проигрывании через MediaPlayer mp3


15-1275535977
Юрий Зотов
2010-06-03 07:32
2010.09.12
И снова смех сквозь слезы...


2-1276664021
Delphist2
2010-06-16 08:53
2010.09.12
текст в ячейке excel