Форум: "Базы";
Текущий архив: 2005.01.30;
Скачать: [xml.tar.bz2];
Внизне работает запрос при использовании параметров в 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;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.043 c