Ошибка при передаче параметра

отредактировано 04:21 Раздел: FastReport 4.0
доброе время суток!
возникла проблема при передаче параметра в отчет

из приложения передаю дату в формате string прим. '19.04.2011'
в запросе ADOQuery1 этот параметр принимается и обрабатывается в базе. все нормально.

проблема возникает при построении Cross-tab отчета. данные в него берутся из ADOQuery2.

параметры в ADOQuery1 и ADOQuery2 одинаковые.

но при выполнении вылазит следующая ошибка (см. приложение)
т.е. два идентичных запроса (по параметрам), но в cross-tab не обрабатывается.
если добавить в отчет новый диалог (календарь) и из него выбирать параметры, то отчет строится нормально.

подскажите пожалуйста в чем может быть проблема!

Комментарии

  • gpigpi
    отредактировано 04:21
    Приведите текст запроса и покажите, как Вы передаёте параметр в отчёт
  • отредактировано 04:21
    текст запроса рабочего
    select dr.id,count(distinct pd.PatientReceptionID),datename(month,dr.datecreation)As Mm,
    datepart(year,dr.datecreation)As Yy,datepart(day,dr.datecreation)As Dd
    from hospital_menu_history_data mhd
    left join hospital_menu_history h on h.id=mhd.menuhistoryid
    left join hospital_diet_reports dr on dr.datecreation=h.datecreation
    left join Hospital_Patient_Diets pd on pd.dietid= mhd.dietid
    left join hospital_patientreception pr on pr.id=pd.PatientReceptionID
    where convert(varchar,dr.datecreation,104)=: D
    and pr.PaymentID=1
    and DateRelease is null
    group by dr.datecreation,dr.id

    текст запроса нерабочего
    select mhd.dietid,food.foodid,(rfood.name+','+cast(count(distinct pd.PatientReceptionID) as varchar)+'ïîðö.') as foodname,
    (sm.name+','+meas.name) as sm,food.amount,sum(diet.amount),mhd.intfoodid,sm.id,
    (food.amount*count(distinct pd.PatientReceptionID)) as rez,count(distinct pd.PatientReceptionID)as countp
    from hospital_menu_history_data mhd
    left join hospital_food_sostav food on food.foodid=mhd.foodid
    left join hospital_menu_history h on h.id=mhd.menuhistoryid
    left join reference_foods rfood on rfood.id=food.foodid
    left join sm_meds sm on sm.id=food.productid
    left join sm_measure meas on meas.id=sm.measureid
    left join hospital_diet_reports_data diet on diet.dietid=mhd.dietid
    left join hospital_diet_reports dr on dr.datecreation=h.datecreation
    left join Hospital_Patient_Diets pd on pd.dietid= mhd.dietid
    left join hospital_patientreception pr on pr.id=pd.PatientReceptionID
    where convert(varchar,dr.datecreation,104)=: D
    and pr.PaymentID=1
    and DateRelease is null
    group by pd.dietid,mhd.dietid,food.foodid,rfood.name,sm.name,food.amount,diet.amount,mhd.intfoodid,sm.id,meas.name
    order by mhd.intfoodid,sm.id

    передача параметра в запрос (код C#)
    reportArgs["D"] = "'" + monthCalendar.SelectionStart.Date.ToShortDateString() + "'";

Оставить комментарий

Многофункциональный текстовый редактор. Чтобы отредактировать стиль параграфа, нажмите TAB, чтобы перейти к меню абзаца. Там вы можете выбрать стиль. По умолчанию не выбран ни один стиль. Когда вы выберете текст, появится встроенное меню форматирования. Нажмите TAB, чтобы войти в него. Некоторые элементы, такие как многофункциональные вставки ссылок, картинок, индикаторов загрузки и сообщений об ошибок могут быть вставлены в редактор. Вы можете перемещаться по ним, используя стрелки внутри редактора и удалять с помощью клавиш delete или backspace.