Обновление ColdFusion 2016 с ошибкой хранимой процедуры - PullRequest
0 голосов
/ 10 мая 2018

Мы находимся в процессе обновления до ColdFusion 2016 для работы с SqlServer 2017. Наша текущая версия (ColdFusion 10 / SqlServer 2008) работает нормально.

Мы тестируем наш код в среде разработки, чтобы найти какие-либо проблемы с ним, и я продолжаю сталкиваться с одной и той же ошибкой, которая немного загадочна. Я не уверен, что это комбинация ColdFusion 2016 и SqlServer2008 или просто обновление с CF10 до CF2016. Он включает команды CFStoredProc.

Код:

<CFSTOREDPROC DATASOURCE="MedScribeSQL" PROCEDURE="dbo.usp_ChartRestrictionCheck">
    <CFPROCPARAM CFSQLTYPE="CF_SQL_VARCHAR" DBVARNAME="Org" TYPE="In" VALUE="#Cookie.Org#">
    <CFPROCPARAM CFSQLTYPE="CF_SQL_VARCHAR" DBVARNAME="Chartnum" TYPE="In" VALUE="#TRIM(Variables.PTChartnum)#">
    <CFPROCPARAM CFSQLTYPE="CF_SQL_VARCHAR" DBVARNAME="Username" TYPE="In" VALUE="#Cookie.Username#">
    <CFPROCPARAM CFSQLTYPE="CF_SQL_VARCHAR" DBVARNAME="ReturnChart" TYPE="Out" VARIABLE="RestrictionReturnChart">
    <CFPROCPARAM CFSQLTYPE="CF_SQL_DATE" DBVARNAME="ReturnExpiryDate" TYPE="Out" VARIABLE="RestrictionReturnExpiryDate">
</CFSTOREDPROC>

При запуске страницы появляется следующая ошибка:

Error Executing Database Query. 
[Macromedia][SQLServer JDBC Driver][SQLServer]Incorrect syntax near '='.   

The error occurred in D:/Websites/AcumenEHR/health/CustomTags/checkMRAccess.cfm: line 78
Called from D:/Websites/AcumenEHR/health/HCNHeader.cfm: line 127
Called from D:/Websites/AcumenEHR/health/HCNHeader.cfm: line 1
Called from D:/Websites/AcumenEHR/health/records/Visit_summary/hpsummary2.cfm: line 23
Called from D:/Websites/AcumenEHR/health/CustomTags/checkMRAccess.cfm: line 78
Called from D:/Websites/AcumenEHR/health/HCNHeader.cfm: line 127
Called from D:/Websites/AcumenEHR/health/HCNHeader.cfm: line 1
Called from D:/Websites/AcumenEHR/health/records/Visit_summary/hpsummary2.cfm: line 23

76 : <CFPROCPARAM CFSQLTYPE="CF_SQL_VARCHAR" DBVARNAME="Username" TYPE="In" VALUE="#Cookie.Username#">
77 : <CFPROCPARAM CFSQLTYPE="CF_SQL_VARCHAR" DBVARNAME="ReturnChart" TYPE="Out" VARIABLE="RestrictionReturnChart">
78 : <CFPROCPARAM CFSQLTYPE="CF_SQL_DATE" DBVARNAME="ReturnExpiryDate" TYPE="Out" VARIABLE="RestrictionReturnExpiryDate">
79 : </CFSTOREDPROC>
80 :    

Я не могу найти в документации какую-либо информацию о том, почему это может привести к ошибке. Мне интересно, имел ли кто-либо подобный опыт с этим и может ли я указать направление исправления, так как эта же ошибка возникает в ряде мест.

Спасибо

1 Ответ

0 голосов
/ 11 мая 2018

В CF11 были внесены некоторые изменения в том, как обрабатываются атрибуты DBVARNAME.В CF10 они были по существу проигнорированы, и после обновления 3 для CF11 это было «исправлено».

Вам нужно будет убедиться, что значения в атрибутах DBVARNAME соответствуют именам параметров в хранимых процедурах точно , в данном случае с SQL Server это, вероятно, означает, что вам нужно будет поставить перед ними префикс @.

Вот сообщение в блоге с изложением этого изменения: https://coldfusion.adobe.com/2015/07/coldfusion-11-and-dbvarname-attribute/

...