![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Запарка с ADOQuery.Parameters [D6]
ZS © (2003-08-27 08:29:00)
Текст из проги
CustomerData.ADOQuery_promeg.parameters.parambyname("maxdate").value:= strtodate(MaskEdit1.Text);// последняя дата
sql:="create view Promeg_table AS select * from table_3week where (f_date= :maxdate )";
manipulation_data.select_date(CustomerData.ADOQuery_promeg,sql,false); // Здесь Delpha выдает ошибку: объект параметра неправильно определен, противоричивая или неполная информация.//
sql:="select f_date from promeg_table where (f_date= :maxdate)";
manipulation_data.select_date (CustomerData.ADOQuery_promeg,sql,true);
manipulation_data.select_date (sender:Tobject;query:string;flag:boolean);
with (sender as TADOquery) do
begin
close;
sql.clear;
sql.Add(query);
if flag=true then open
else execsql;
Hooch (2003-08-28 17:11:00) [1]
попробуй так
Sql = "Select .."
AdoQuery.Sql.Text := Sql;
AdoQuery.Parameters.Clear;
AdoQuery.Parameters.ParseSql(Sql,True);
AdoQuery.Parameters.ParamByName("Date").DataType := ftDate;
AdoQuery.Parameters.ParamByName("Date").Value := ...
и будет сказка :-) А если вместо TadoQuery TAdoDataSet использовать то там просто CommandText = Sql параметры и типы на автомате заполнятся
ZS (2003-08-28 16:54:00) [2]
Ничего не получится походу это БАГ! или лыжи не едут
Nucl (2003-08-27 14:25:00) [3]
первое что бросилось в глаза это тип то что параметр у тебя типа
maxdateесли рулишь к mssql, то ставь varchar(10) - и все будет ок
datatype:ftdatetime;
Valuetype:date
ZS (2003-08-27 11:21:00) [4]
Спасибо за обсуждение.
roottim (2003-08-27 11:01:00) [5]
забыл!
sql:="create view Promeg_table AS select * from table_3week where (f_date= :maxdate )";
CustomerData.ADOQuery_promeg.SQL.Text := sql;
CustomerData.ADOQuery_promeg.parameters.parambyname("maxdate").value:= DateTimePicker1.Date;// последняя дата
CustomerData.ADOQuery_promeg.Open;
roottim (2003-08-27 10:54:00) [6]
>ZS (27.08.03 10:08) [8]
чего вы ерундой страдайте ?, смысла в вашей вункции 0!
зачем вам TMaskEdit, воспользуйтесь TDateTimePicker (закладка Win32)
далее код
sql:="create view Promeg_table AS select * from table_3week where (f_date= :maxdate )";
CustomerData.ADOQuery_promeg.parameters.parambyname("maxdate").value:= DateTimePicker1.Date;// последняя дата
CustomerData.ADOQuery_promeg.Open;
и не создавайте себе проблем из-за никчемных функций
stud (2003-08-27 10:48:00) [7]
тогда перед выполнением запроса нужноопмсать парамет заново.
описать его тип вроде
item[0].datatype:=ftdate
и присвоить значение
ZS (2003-08-27 10:08:00) [8]
sql:="select f_date from promeg_table where (f_date="+QuotedStr(MaskEdit1.Text)+")";
manipulation_data.select_date (CustomerData.ADOQuery_promeg,sql,true);
здесь выдает ошибку: несоответствие типов данных в запросе и в параметре отбора.
Представление сделано, а вот выборка не получается.
А параметр создан в дизайн -тайм.
roottim (2003-08-27 09:58:00) [9]
> Запарка с ADOQuery.Parameters
ваша функция manipulation_data.select_date (sender:Tobject;query:string;flag:boolean);
не инициализирует параметр... о чем вам и указал stone © (27.08.03 09:39) [2]
stone (2003-08-27 09:55:00) [10]
> stud © (27.08.03 09:49)
Все он возвращает. Попробую догадаться. Параметр был создан в дизайн-тайм? Тогда при
sql.clear; - он уничтожается, а при
sql.Add(query); - в ран-тайм автоматически уже не создается, тут нужно ручками создавать или сразу составлять запрос типа:
sql:="create view Promeg_table AS select * from table_3week where f_date= " + QuotedStr(MaskEdit1.Text);
stud (2003-08-27 09:49:00) [11]
может maskedit что-нибудь не то возвращает?
stone (2003-08-27 09:45:00) [12]
в приведенном коде этого не видно
ZS (2003-08-27 09:43:00) [13]
Создал в компаненте ADOQUEry
maxdate
datatype:ftdatetime;
Valuetype:date;
stone (2003-08-27 09:39:00) [14]
Так ты ведь параметр не создал.
ZS (2003-08-27 08:58:00) [15]
В чем причина подскажите пжлста!!!