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

Вниз

Поис в диапазоне дат   Найти похожие ветки 

 
viktooor   (2010-05-24 09:00) [0]

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

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


 
Sergey13 ©   (2010-05-24 09:06) [1]

> [0] viktooor   (24.05.10 09:00)
> "WHERE Срок_поставки  BETWEEN "Edit1.Tex" and "Edit2.Text"");

Откуда твоя СУБД знает про твои едиты?
Используй параметры.
Завязывай рассказывать про свой грид. Он тут ВООБЩЕ ни к чему. Это просто телевизор для данных.


 
12 ©   (2010-05-24 11:03) [2]

такая же ерунда была вчера,  Access(A)
использовал параметры, первым делом - ничего хорошего не получилось
в oracle, mssql - работает, в A - нет..

проблему решил так:
формировал запрос в программе, выводил в мемо.
Копировал из мемо в A, запускал, и так до победного конца


 
Anatoly Podgoretsky ©   (2010-05-24 11:05) [3]

> viktooor  (24.05.2010 09:00:00)  [0]

Используй параметры, тогда не сможешь подобную дурость написать и все будет
работать.


 
Anatoly Podgoretsky ©   (2010-05-24 11:53) [4]

> 12  (24.05.2010 11:03:02)  [2]

Глупо


 
Amoeba_   (2010-05-24 12:06) [5]


> такая же ерунда была вчера,  Access(A)
> использовал параметры, первым делом - ничего хорошего не
> получилось
> в oracle, mssql - работает, в A - нет..
>

У всех работает, и только у тебя нет ... Значит у кого-то руки кривые.


 
Плохиш ©   (2010-05-24 12:07) [6]


> 12 ©   (24.05.10 11:03) [2]
>
> такая же ерунда была вчера,  Access(A)
> использовал параметры, первым делом - ничего хорошего не
> получилось
> в oracle, mssql - работает, в A - нет..

Ошибка в программе.


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

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" определил в параметрах и выставил тип Дата


 
turbouser ©   (2010-05-25 15:47) [8]

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


 
12 ©   (2010-05-25 15:50) [9]

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

Вот собственно
 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;


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

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 16:22) [11]


> 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;


 
turbouser ©   (2010-05-25 16:27) [12]


> .SQL.Clear;

:)


 
Anatoly Podgoretsky ©   (2010-05-25 16:35) [13]


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

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


 
Anatoly Podgoretsky ©   (2010-05-25 16:38) [14]

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


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


> viktooor   (25.05.10 15:24) [7]

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


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

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

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;


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

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;

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


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

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


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

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;

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


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

Виктор, у тебя будет такая конструкция с 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;


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

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


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

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


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

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


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

Пожалуйста!


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

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


 
12 ©   (2010-05-28 12:15) [26]

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

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



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

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

Наверх





Память: 0.51 MB
Время: 0.068 c
15-1269176860
Правильный$Вася
2010-03-21 16:07
2010.08.27
загрузочный ли образ


2-1271740246
serhiyiv
2010-04-20 09:10
2010.08.27
Прочитать текст с екрана


15-1269176312
windaws
2010-03-21 15:58
2010.08.27
Развитие АИС, Delphi или PHP ?


15-1275143388
oldman
2010-05-29 18:29
2010.08.27
Для тех, кто любит блюз (а тут любят блюз...)


2-1274254857
lock95
2010-05-19 11:40
2010.08.27
поиск одинаковых частей в двух бинарных файлах





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