![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Поис в диапазоне дат
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' определил в параметрах и выставил тип Дата