![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Глюк ADODataSet [D7, MSSQL]
Risk © (2006-02-15 07:54:00)Пишу обычный запрос в ADODataSet c параметрами
//-----------------------------------------------
f16.ds_rupdisc.Close;
f16.ds_rupdisc.Parameters.Clear;
f16.ds_rupdisc.Parameters.AddParameter.Name := 'P_id_groups';
f16.ds_rupdisc.Parameters.AddParameter.Name := 'P_id_semestr';
f16.ds_rupdisc.Parameters.AddParameter.Name := 'P_course';
f16.ds_rupdisc.Parameters.ParamValues['P_id_groups'] := 14;//f16.ds_lgroup.FieldByName('id_groups').AsInteger;
f16.ds_rupdisc.Parameters.ParamValues['P_id_semestr'] := 4;//f16.ds_lsem.FieldByName('id_semestr').AsInteger;
f16.ds_rupdisc.Parameters.ParamValues['P_course'] := 2;//f16.ds_lgroup.FieldByName('course').AsInteger;
f16.ds_rupdisc.CommandText := 'SELECT rp_discip.discipr, rp_groups.lang, rp_discip.id_discip, rp_ruplan.hours, rp_ruplan.weeks, rp_ruplan.id_ruplan, rp_ruplan.fundrasp'+
' FROM rp_discip INNER JOIN'+
' rp_ruplan ON rp_discip.id_discip = rp_ruplan.id_discip INNER JOIN'+
' rp_spec ON rp_ruplan.id_spec = rp_spec.id_spec INNER JOIN'+
' rp_groups ON rp_spec.id_spec = rp_groups.id_spec INNER JOIN'+
' rp_semestr ON rp_ruplan.id_semestr = rp_semestr.id_semestr'+
' WHERE (rp_ruplan.course=:P_course) AND (rp_groups.id_groups=:P_id_groups) AND'+
' (rp_semestr.id_semestr=:P_id_semestr) order by rp_discip.id_discip';
f16.ds_rupdisc.Open;
//----------------------------------------------
запуская его первый раз все нормально, запускаю второй раз(парметры не меняю) возврашает пусто. В чем дело не могу понять. Помогите!!!
Risk (2006-02-15 09:17:00) [1]Все разобрался, спасибо.
sniknik (2006-02-15 08:44:00) [2]> Они сами по себе не создадутся
создадутся, если конечно ты сознательно это не отключил (ParamCheck). впрочем... от бессознательного отключения эффект тот же.
но даже в этом случае (при отключенном, и ручном создании) все одно это надо делать после внесения запроса.
Risk (2006-02-15 08:18:00) [3]->очистка параметров лишняя
Без него происходит ошибка, очистка должна быть.
->они и так очистятся и создадутся при внесении запроса
Они сами по себе не создадутся, выйдет ошибка не найден такой-то параметр.
sniknik (2006-02-15 08:13:00) [4]в чем, в чем...
как ктото сказал... "97% ошибок обычно сидят перед монитором, и возмущаются "кривизной" виндов"...
очистка параметров лишняя, так же как самотоятельное создание, они и так очистятся и создадутся при внесении запроса... вот в этом и "глюк", задавать значения чему бы ни было надо после того как оно создастся, а не до.