MyTetra Share
Делитесь знаниями!
ExecSQLEx
Время создания: 17.04.2017 17:00
Раздел: Global - Programming - Pascal - Классы объектов - TbtkScriptSelectionObject
Запись: xintrea/mytetra_db_mcold/master/base/1492437602y37q8xi2yx/text.html на raw.githubusercontent.com

Аналогична ExecSQL, но позволяет передавать в SQL-блок дополнительные, не участвующие в контексте выборки параметры, а также возвращать их. Имена входящих параметров задаются в ParamNames через точку с запятой. В тексте SQL-запроса можно использовать не только передаваемые в ParamNames параметры, но и использовать параметры, имеющиеся в выборке. В случае совпадения имен параметров, будет использоваться параметр, переданный в вызове ExecSQLEx. Возвращает массив значений параметров, указанных в ParamNames, в том порядке, в котором они перечислены в ParamNames. Если возвращаемый параметр участвует в секции [OUT] sql-запроса, то будет возвращено его новое значение. Если не участвует, то будет возвращено то значение, которое передавалось в ParamValues. Если входящих параметров нет, то можно передавать ParamNames=’’ и ParamValues=[]. Количество параметров должно совпадать с количеством типов и с количеством значений. Все параметры являются входными и могут являться выходными.

function ExecSQLEx(
SQLName: String;
var ParamNames: String;
var ParamTypes : Array;
var ParamValues : Array
): Array;

Примеры

<SQL>
  <Save>
     [out sNotionReg]
     begin
       :sNotionReg := BTK_Loader.OutNotionToScriptText(:idNotion); 
     end;
   </Save>
</SQL>

<Pascal>
begin
    sRes := ExecSQLEx('save', 'idNotion; sNotionReg ', [ftInteger, ftString], [GetVar('id'), ‘’]);
    // возвращаемое значение sNotionReg находится в sRes[1].
    // В sRes[0] находится передаваемый параметр idNotion.
    SaveToFile('', sRes[1]);
    end;
</Pascal>

 
MyTetra Share v.0.59
Яндекс индекс цитирования