Главная страница
    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
1-1133883289
VID
2005-12-06 18:34
2006.01.08
Item.Caption отображает только 260 символов !


2-1134922994
Arazel
2005-12-18 19:23
2006.01.08
Как отсортировать название файлов/папок ListBox как Explorer?


2-1134676315
Чакуока
2005-12-15 22:51
2006.01.08
Переход на Delphi7


2-1135237256
oleggar
2005-12-22 10:40
2006.01.08
время


14-1134601699
ZeeM
2005-12-15 02:08
2006.01.08
Преобразование AnsiString во флоат





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