Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2006.01.08;
Скачать: [xml.tar.bz2];

Вниз

Опять SQL   Найти похожие ветки 

 
Мадик777   (2005-12-18 16:29) [0]

Есть компонент TDateTimePicker, есть база Base в ней три поля num, date, memo Помогите с запросом SQL, нужно чтобы в DBGride отображались только те поля у которых совпадает поля "Date" с DateTimePicker.date
использую ADOQuery


 
mfender ©   (2005-12-18 16:46) [1]


procedure TForm1.DateTimePicker1Change(Sender: TObject);
var SD, ED: TDateTime;
   Year, Month, Day: Word;
begin
 {Сначала узнаем диапазон}
 DecodeDate(DateTimePicker1.Date, Year, Month, Day);
 SD := StartOfADay(Year, Month, Day); // Начало суток
 ED := EndOfADay(Year, Month, Day); // Конец суток
 {Соответственно запрос к БД будет выглядеть, взависимости от БД примерно так:
 "SELECT field FROM table WHERE datefieldvalue BETWEEN <преобразуем SD в нужный вид> AND
   <ED преобразуем в нужный вид>"}
end;


 
з. танька   (2005-12-18 16:46) [2]

вероятно проблема заключается в том шо как вставить в запрос значение типа дата/время? нужно делать параметрический запрос.

у TAdoQuery есть св-во Parameters посмотри. добавляешь туды параметр типа дата/время например par1 он будет называться, присваиваешь ему значение DateTimePicker.date, делаешь TADOQuery.prepare а затем выполняешь следующий запрос:

"SELECT * FROM table1 WHERE table1.date = :par1"

зы: в базе таблица то должна быть какая нибудь в моем примере это table1


 
Мадик777   (2005-12-18 18:37) [3]

сделал как сказала Танька, создал в обработчике события OnCreate Form1 этот код

//  Qmain.Close;
 Qmain.Prepared;
 Qmain.Parameters[0].Value:=DateTimePicker1.Date;
 Qmain.SQL.Clear;
 Qmain.SQL.Add("SELECT * from Jurnal WHERE DateT=:par1");
 QMain.Open;

получилось, но... после того как беру другую дату и выполняю тот же запрос выходит ошибка...
Parameter object is properly defined. Inconsistent or incomplete information was provided
код в обработчике события OnChange компонента TDateTimePicker

 Qmain.Close;
 Qmain.Prepared;
 Qmain.Parameters[0].Value:=DateTimePicker1.Date;
 Qmain.SQL.Clear;
 Qmain.SQL.Add("SELECT * from Jurnal WHERE DateT=:par1");
 QMain.Open;


Может что то не так делаю?


 
Плохиш ©   (2005-12-18 23:32) [4]


Qmain.Close;
Qmain.SQL.Text := "SELECT * from Jurnal WHERE DateT=:par1";
//Qmain.Prepared; // Вместо этого лучше выставить свойство Prepared один раз
Qmain.Parameters[0].Value:=DateTimePicker1.Date;
QMain.Open;


PS. Прикольно, когда программы пишут способом накидать команд как попало, может заработает.


 
Плохиш ©   (2005-12-18 23:57) [5]

PPS. Кстати, не понятно, зачем один и тот же запрос постоянно записывать в SQL?



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

Форум: "Начинающим";
Текущий архив: 2006.01.08;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.45 MB
Время: 0.008 c
8-1122974855
апельсин
2005-08-02 13:27
2006.01.08
дата создания jpeg файла


14-1134584063
lookin
2005-12-14 21:14
2006.01.08
Еще новость


4-1131146588
FrykT
2005-11-05 02:23
2006.01.08
Как отловить, что мышки нету!?


9-1122572178
Kslaruovon
2005-07-28 21:36
2006.01.08
Анимация в Opengl


2-1134845614
Exploit
2005-12-17 21:53
2006.01.08
Мышь





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