如何将参数传递给SQL Server Reporting Services中的Query.CommandText?
问题描述:
我对Oracle数据库以下查询:如何将参数传递给SQL Server Reporting Services中的Query.CommandText?
select * from (
select Person.pId, Person.lastName as patLast, Person.firstName as patFirst
, Person.dateOfBirth
, Medicate.mId, Medicate.startDate as medStart, Medicate.description
, cast(substr(Medicate.instructions, 1, 50) as char(50)) as instruct
, ml.convert_id_to_date(Prescrib.pubTime) as scripSigned
, max(ml.convert_id_to_date(Prescrib.pubTime)) over (partition by Prescrib.pId, Prescrib.mId) as LastScrip
, UsrInfo.pvId, UsrInfo.lastName as provLast, UsrInfo.firstName as provFirst
from ml.Medicate
join ml.Prescrib on Medicate.mId = Prescrib.mId
join ml.UsrInfo on Prescrib.pvId = UsrInfo.pvId
join ml.Person on Medicate.pId = Person.pId
where Person.isPatient = 'Y'
and Person.pStatus = 'A'
and Medicate.xId = 1.e+035
and Medicate.change = 2
and Medicate.stopDate > sysdate
and REGEXP_LIKE(Medicate.instructions
, ' [qtb]\.?[oi]?\.?[dw][^ayieo]'
|| '|[^a-z]mg?s'
|| '|ij'
|| '|[^a-z]iu[^a-z]'
|| '|[0-9 ]u '
|| '|[^tu]hs'
, 'i')
order by ScripSigned desc
) where scripSigned = lastScrip and scripSigned > date '2011-01-01'
我有一个报表参数定义,DateBegin,定义为一个日期时间,我已经与查询参数也被称为DateBegin有关吧。我只是无法弄清楚如何用“DateBegin”替换“date”2011-01-01'“,以便blinkin的东西真正起作用。谢谢!
答
使用的参数以及Oracle格式 - 因此使用下列内容:(该@
符号在SQLServer的用于识别SQLServer的变量)
) where scripSigned = lastScrip and scripSigned > :DateBegin
啊,谢谢。我以前从来没有必要直接将参数传递给Oracle。对于任何SQL命令,Crystal Reports都使用相同的参数格式 - {?DateBegin},并将其转换为适合后端的格式。 – SarekOfVulcan 2011-12-15 14:00:06