Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Базы данных и репортинг > Тип подставляемый в параметры.


Автор: Пикачу 18.7.2006, 11:50
Народ подскажите новичку, пожалуйста что писать в   Parameters.ParamByName('d_stop').Value:= DTStop; если переменные имеют вид:

DTStart:='14-07-2006 08:00:00';
DTStop:='15-07-2006 08:00:00';

Указываю .Value, ругается что integer не может быть '14-07-2006 08:00:00', перевожу в дату, пишет предоставленны не все параметры. 

Код

    with SQL do begin
      Clear;
    Add('select tn, sol, client, pcs, d_creat, d_activ, d_planed, d_coll,');
    Add('d_ship, SUBSTR(d_work,12,8),SUBSTR (d_exit,12,8)');
    Add('from time_work_all');
    Add('where d_activ between :d_start and :d_stop');
    Add('Order By d_creat');
    end;
    Parameters.ParamByName('d_start').Value:=DTStart;
    Parameters.ParamByName('d_stop').Value:= DTStop;


Приходится  писать так:
Код

Add('where d_activ between TO_DATE('''+ DTStart +''') AND TO_DATE('''+ DTStop +''')');



Oracle 7, Delphi 7, ADO.
 

Автор: Frees 18.7.2006, 14:26
попробуй сравнивать их как строки 

Автор: Пикачу 18.7.2006, 16:10
Цитата(Frees @ 18.7.2006,  14:26)
попробуй сравнивать их как строки


В смысле сравнить как строки?

 

Автор: Ramin 18.7.2006, 20:07
а так тоже ругается?

Код

 Parameters.ParamByName('d_start').Value:='14-07-2006 08:00:00';
 Parameters.ParamByName('d_stop').Value:= '15-07-2006 08:00:00';


Добавлено @ 20:10 
Цитата(Пикачу @ 18.7.2006,  16:10)
Цитата(Frees @ 18.7.2006,  14:26)
попробуй сравнивать их как строки


В смысле сравнить как строки?

а так тоже ругается?

Код

 Parameters.ParamByName('d_start').Value:='14-07-2006 08:00:00';
 Parameters.ParamByName('d_stop').Value:= '15-07-2006 08:00:00';
 

Автор: Akella 19.7.2006, 12:52
а так пробовал?
Код

 Parameters.ParamByName('d_stop').asString := '15-07-2006 08:00:00';
или
 Parameters.ParamByName('d_stop').asDateTime := '15-07-2006 08:00:00';
 

Автор: Пикачу 20.7.2006, 10:52
Может это не метод и я думал ораклу все равно, 
но все решилось приведением даты в определеный формат.

Код

ShortDateFormat := 'dd/mm/yyyy';


Спасибо, откликнувшим. 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)