Главная страница
    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.054 c
14-1105378019
esu
2005-01-10 20:26
2005.01.30
Да уж, наверное и такое бывает ;)


6-1100196714
Jim^sz
2004-11-11 21:11
2005.01.30
Как пользоваться UDP, Broadcast-ом


11-1087067965
Андрей2
2004-06-12 23:19
2005.01.30
Не происходит переключение между формами


4-1102606790
Иван2
2004-12-09 18:39
2005.01.30
Можно мне пример привести, как на окошке api текст написать?


1-1105633489
The X
2005-01-13 19:24
2005.01.30
Как экспортировать данные в HTML?





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский