Форум: "Начинающим";
Текущий архив: 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.007 c