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

Вниз

не работает запрос при использовании параметров в ADO   Найти похожие ветки 

 
Dysan ©   (2004-12-28 14:01) [0]

Почему запрос вот такой работает на ура

GetBaza("Select * From BazaPred Where Time_bg>="+ku+"2003-12-09"+ku+" AND Time_end<="+ku+"2003-12-09"+ku);

А такой не отрабатывает и возвращает пустой результата!

ADOQ.Parameters.Clear;
ADOQ.Parameters.AddParameter.Name:="VD1";
ADOQ.Parameters.ParamByName("VD1").Value:=StrToDate("2004-12-09");
GetBaza("Select * From BazaPred Where Time_bg>=:VD1 AND Time_end<=:VD1");

Хотя суть их одна и таже! Но мне нужно чтобы работал второй вариант запроса!


 
Александр Иванов ©   (2004-12-28 14:04) [1]

А что за процедура GetBaza?


 
Dysan ©   (2004-12-28 14:06) [2]

эээ
да не важно там происходит обычное подключение и выполнение запроса

ADOC.Open;
ADOQ.SQL.Clear;
ADOQ.SQL.Add(query);
ADOQ.Open;

ничего особенного.


 
Александр Иванов ©   (2004-12-28 14:20) [3]

Вот так попробуй:

ADOC.Open;
ADOQ.SQL.Clear;
ADOQ.SQL.Add(query);
ADOQ.Parameters.ParamByName("VD1").Value:=StrToDate("2004-12-09");
ADOQ.Open;


 
Ольга   (2004-12-28 14:31) [4]

А вы уверены, что Delphi правильно интерпритирует формат даты.
Попробуйте
ADOQ.Parameters.ParamByName("VD1").Value:=StrToDate("2004-12-31");

Нужно сделать SET DATEFORMAT


 
Соловьев ©   (2004-12-28 14:39) [5]

StrToDate("2004-12-31");

Зачем? Нужно нормальные компоненты юзать DateTimePicker хотя-бы
И не надо будет делать формат на сервере


 
Ольга   (2004-12-28 14:46) [6]

Так если дата передается жесткой строкой "2004-12-09" значит это кому-нибудь нужно... Впрочем полностью согласна с г.Соловьевым


 
Dysan ©   (2004-12-28 14:48) [7]

т.е. вы хотите сказать что я просто не в том формате подаю дату?
но ведь я подуаю ее в формате просто real ! а уже там на той стороне (я правда не знаю где конкретно) эти цифорки должны перекодироваться в нужный формат? или я не прав?


 
Dysan ©   (2004-12-28 14:50) [8]

строкой я дату тут написал для примера
передаю я ее сразу в формате TDateTime


 
Stanislav ©   (2004-12-28 14:50) [9]

Эта строчка здесь лишняя
ADOQ.Parameters.AddParameter.Name:="VD1";


 
Соловьев ©   (2004-12-28 14:51) [10]

но ведь я подуаю ее в формате просто real !

1. дата - целое число.
2. разницу чувствуешь - 2001-03-04 и 2001-04-03?


 
Sergey13 ©   (2004-12-28 14:55) [11]

А мне кажется (я с АДО не работал), что тут бодяга из-за GetBaza. Такое ощущение, что параметр задается в одном месте, а запрос выполняется в другом, с нуловым параметром.


 
Stanislav ©   (2004-12-28 14:57) [12]

Дату можно передать в стандарте ISO: "20041231"
Строка без всяких разделителей, и MSSQL это поймет !


 
Dysan ©   (2004-12-28 14:58) [13]

собственно в хелпе написано что дата не целое число а
type TDate = TDateTime;
type TDateTime = type Double;

пока так у меня ничего не получилось.
не пробовал разве что только воспользоваться  SET DATEFORMAT
только правда потому что никогда еще им не пользовался.
может будут еще идеи почему так проиходить и что поробовать?


 
Dysan ©   (2004-12-28 15:04) [14]

нет. бодяга не из за GetBaza. я уже все в одном месте пишу. всё тоже.


 
Stanislav ©   (2004-12-28 15:07) [15]

К стати если в тип параметра ftDateTime, то дату можно записывать в привычном формате mm.dd.yy


 
Плохиш ©   (2004-12-28 15:17) [16]


"Select * From BazaPred Where Time_bg>=:VD1 AND Time_end<=:VD1");

это два разных параметра! Соответственно инициализировать надо оба.


 
Stanislav ©   (2004-12-28 15:26) [17]

Плохиш ©   (28.12.04 15:17) [16]
Правильно !
Можно так:
Declare @d1 datetime
Set @d1 = :VD1
"Select * From BazaPred Where Time_bg>=@d1 AND Time_end<=@d1");


 
Ольга   (2004-12-28 15:41) [18]

У вас поля Time_bg, Time_end время, отличное от 00:00:00 содержат? Если да, то нужно переформировать условие Time_end < @d1+1


 
Dysan ©   (2004-12-28 15:43) [19]

спасибо! вроде заработало!



Страницы: 1 вся ветка

Текущий архив: 2005.01.30;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.042 c
4-1102558572
Fedia
2004-12-09 05:16
2005.01.30
Отправка сообщения программе от ловушки сообщений


3-1104297254
Janb
2004-12-29 08:14
2005.01.30
ODBC driver глючит или что я делаю неправильно?


1-1105471116
Igor_thief
2005-01-11 22:18
2005.01.30
ImageList


1-1106215634
Tria
2005-01-20 13:07
2005.01.30
Как сделать, чтобы в главном MDI окне не появлялись полосы прокру


1-1106033398
ghg
2005-01-18 10:29
2005.01.30
найти в TStringList строку содержащую определенный набор символов