Maximo/BIRT — необязательные нулевые значения

Я пытаюсь создать отчет в BIRT. Я создал хранимую процедуру в SQL Server 2008, которая отлично работает. Однако когда я пытаюсь запустить отчет в BIRT, он не запускается со значением NULL.

var DepartmentValue = params["DepartmentValue"].value;
var AccountValue = params["AccountValue"].value;

sqlText = " EXEC SP_Report_ByDept '"+DepartmentValue+"','"+AccountValue+"','"+startdt+"','"+enddt+"' ";

Работает отлично, если есть допустимое значение AcccountValue. Любая идея, как передать нулевое значение для AccountValue?

Ваше здоровье.


person Kay_e_n    schedule 14.07.2017    source источник
comment
Переменные связывания — это решение вместо создания строки SQL вручную. Это решит вашу проблему безопасности SQL-инъекций и проблему с нулевым значением одновременно.   -  person hvb    schedule 07.08.2017


Ответы (1)


Если я правильно понимаю, вы хотите передать строку «null», когда фактический параметр равен нулю?

var DepartmentValue = params["DepartmentValue"].value;
var AccountValue = params["AccountValue"].value;

if (AccountValue == null){
    AccountValue = 'null';
}

sqlText = " EXEC SP_Report_ByDept '"+DepartmentValue+"','"+AccountValue+"','"+startdt+"','"+enddt+"' ";
person Jeroen    schedule 17.07.2017
comment
если вы включите отладку в BIRT, вы сможете увидеть фактический запрос, отправляемый в базу данных. Пожалуйста, добавьте эту информацию в свой исходный пост. - person Jeroen; 04.08.2017