Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 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.036 c
1-1105982292
needhelp
2005-01-17 20:18
2005.01.30
как объявить заголовок процедуры или функции в libarary?


1-1105299352
chir
2005-01-09 22:35
2005.01.30
OnChange - игнор


6-1099581365
Seeker
2004-11-04 18:16
2005.01.30
Authorization: Digest


1-1105945802
Fostr
2005-01-17 10:10
2005.01.30
RichEdit


3-1104062538
Alex_S
2004-12-26 15:02
2005.01.30
Странности DBGrid при работе с InterBase





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский