Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Поис в диапазоне дат


Страницы:   1 2

viktooor ©   (2010-05-24 09:00:00) 

В Grid вношу даты с помощью DataTime.
При запросе ввожу даты через Edit.Text, пробовал через DataTime
Делаю запрос с помощью BETWEEN, не получается -пишет разные типы

ADODataSet3.Close;
ADODataSet3.CommandText :='SELECT *FROM Zajvka '+
'WHERE Срок_поставки  BETWEEN "Edit1.Tex" and "Edit2.Text"');
ADODataSet3.Open;


12   (2010-05-28 12:15:00) [1]

поробуйте еще

сначала
.Parameters.ParamByName('prm1').DataType := ftDate, ftTime, ftDateTime,
в каком надо варианте
потом
Value := DateTimePicker1.Date;


viktooor   (2010-05-28 12:10:00) [2]

SEMEN
Командировку перенесли

ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('Select*');
ADOQuery1.SQL.Add('From Zajvka.DB');
ADOQuery1.SQL.Add('Where date>= :prm1 and date<= :prm2');
ADOQuery1.ParamByName('prm1').AsDate:=DateTimePicker1.Date;
ADOQuery1.ParamByName('prm2').AsDate:=DateTimePicker2.Date;
ADOQuery1.Open;

У меня  база Access
ADOQuery1.SQL.Add('From Zajvka.mbd');
ADOQuery1 только через Parameters.ParamByName
Пока не получается
Вместо AsDate------Value


Semen   (2010-05-25 18:57:00) [3]

Пожалуйста!


viktooor   (2010-05-25 18:45:00) [4]

Все понял
Попробую
Уезжаю в командировку на неделю
Приеду продолжу если не выйдет
Спасибо


Semen   (2010-05-25 17:41:00) [5]

В
ADOQuery1.SQL.Add('Where date>= :prm1 and date<= :prm2');
вместо date поставь имя своего поля по которому собираешься отбирать данные, остальное все без изменений


Semen   (2010-05-25 17:38:00) [6]

('prm1')
('prm2')
не заменяй своими
('beg_date')
('fin_date')
Имя поля у меня date, а у тебя какое?


Semen   (2010-05-25 17:26:00) [7]

Виктор, у тебя будет такая конструкция с DateTimePicker1.Date:

ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('Select*');
ADOQuery1.SQL.Add('From Zajvka.DB');
ADOQuery1.SQL.Add('Where date>= :prm1 and date<= :prm2');
ADOQuery1.ParamByName('prm1').AsDate:=DateTimePicker1.Date;
ADOQuery1.ParamByName('prm2').AsDate:=DateTimePicker2.Date;
ADOQuery1.Open;


viktooor   (2010-05-25 17:24:00) [8]

ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('Select*');
ADOQuery1.SQL.Add('From Zajvka ');
ADOQuery1.SQL.Add('Where Срок_поставки_нам>= :beg_date and Срок_поставки_нам<= :fin_date');
ADOQuery1.Parameters.ParamByName('beg_date').Value:=StrToDate(DateEdit1.Text);
ADOQuery1.Parameters.ParamByName('fin_date').Value:=StrToDate(DateEdit2.Text);
ADOQuery1.Open;

Ошибок не выдает , но нет результата


viktooor   (2010-05-25 17:10:00) [9]

Semen
Сейчас по пробую


viktooor   (2010-05-25 17:08:00) [10]

ADOQuery1.Close;
// ADOQuery1.Prepared;
//ADOQuery1.SQL.Clear;
 ADOQuery1.SQL.Text :=
' SELECT *                                                             '+
' FROM  Zajvka                                                        '+
' WHERE  Срок_поставки_нам  between :beg_date and:fin_date ';
ADOQuery1.Parameters.ParamByName('beg_date').Value:= DateTimePicker1.Date;
ADOQuery1.Parameters.ParamByName('fin_date').Value:= DateTimePicker2.Date;
     ADOQuery1.Open;

несоответсвие типов данных в выражении условия отбора


Semen   (2010-05-25 16:58:00) [11]

Виктор, напиши так и все будет работать:

ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('Select*');
ADOQuery1.SQL.Add('From Zajvka.DB');
ADOQuery1.SQL.Add('Where date>= :prm1 and date<= :prm2');
ADOQuery1.ParamByName('prm1').AsDate:=StrToDate(DateEdit1.Text);
ADOQuery1.ParamByName('prm2').AsDate:=StrToDate(DateEdit2.Text);
ADOQuery1.Open;


Плохиш   (2010-05-25 16:51:00) [12]


> viktooor   (25.05.10 15:24) [7]

Ты сам-то свой, так сказать, код прокомментировать и выполнить сможешь?


Anatoly Podgoretsky   (2010-05-25 16:38:00) [13]

Да зря я посоветовал, а хотел как лучше.


Anatoly Podgoretsky   (2010-05-25 16:35:00) [14]


> 'beg_date' определил в параметрах и выставил тип Дата

Какие еще параметры, они не наблюдаются.


turbouser   (2010-05-25 16:27:00) [15]


> .SQL.Clear;

:)


12   (2010-05-25 16:22:00) [16]


> ADOQuery1.SQL.Clear;
>      ADOQuery1.Parameters.ParamByName('beg_date').Value

и чего ты хотел? :)

ADOQuery1.SQL.Text :=
 ' SELECT *                                                                        '+
 ' FROM  Zajvka                                                                   '+
 ' WHERE  Срок_поставки_нам  between :beg_date and:fin_date ';
ADOQuery1.Parameters.ParamByName('beg_date').Value:= DateTimePicker1.Date;


viktooor   (2010-05-25 16:14:00) [17]

ADOQuery1.Close;
ADOQuery1.Prepared;
ADOQuery1.SQL.Clear;
     ADOQuery1.Parameters.ParamByName('beg_date').Value:= DateTimePicker1.Date;
ADOQuery1.Parameters.ParamByName('fin_date').Value:= DateTimePicker2.Date;
     ADOQuery1.Open;

SELECT*
FROM Zajvka
WHERE Срок_поставки_нам  between :beg_date and:fin_date

Ошибка
Parameter 'beg_date' not found


12   (2010-05-25 15:50:00) [18]

глупо, согласен, наверное как-то не так поле определил, но надо было срочно :)

Вот собственно
 Login := edtLogin.Text;
 Pwd := edtPwd.Text;
 If (length(Login) > 8) or (Length(Pwd) > 8) then
 begin
   ShowMessage('Ни пароль, ни логин не могут быть больше 8 символов.'+#13#10+'Приравнивается к попытке SQLinjection. Выходим..');
   btnNo.Click;
   Exit;
 end;
 qLogin.SQL.Text := 'Select IdEmployee from rnrEmployee where Login = :Login and Pass = :Pwd';
 qLogin.Parameters.ParamByName('Login').Value := Login;
 qLogin.Parameters.ParamByName('Pwd').Value := Pwd;
 qLogin.Open;


turbouser   (2010-05-25 15:47:00) [19]

параметр это не FieldByName а Parameters.ParamByName


viktooor   (2010-05-25 15:24:00) [20]

ADOQuery1.Close;
ADOQuery1.SQL.Clear;
     ADOQuery1.FieldByName('beg_date').AsDateTime:= DateTimePicker1.Date;
ADOQuery1.FieldByName('fin_date').AsDateTime:= DateTimePicker2.Date;
     ADOQuery1.Open;
Выдает ошибку не может найти 'beg_date'
'beg_date' определил в параметрах и выставил тип Дата


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо