OCLOperators sqlpassthrough
This page was created by Hans.karlsen on 2018-01-08. Last edited by Stephanie on 2025-02-04.
SomeClass.sqlpassthrough('SqlExpression',Type1OfTupleResult,Type2OfTupleResult,...)
Note: There is also the operator, OCLOperators PSEval, that uses OCL instead of SQL.
Example of how the OCL looks like to call a stored procedure:
Anvandare.sqlpassthrough('sp_Upd_Losen ' + self.AnvId.asString + ', \'' + self.Anvandarnamn + '\', @aNyttLosenord', Int32)
NOTES:
- @aNyttLosenord here is automatically available because it's a variable available when the function is called.
- You need to quote strings to be passed (if they aren't variables), like self.Anvandarnamn above. The \' is an escaped quote in OCL (Escape codes).
A use case and examples of using sqlPassThrough can be found here: "PSExpression, or how to do things in the DB from MDriven"
Note also that the sqlPassthrough can create tuples:
AccountPlan.SQLPassthrough('select somekey,sum(somestuff),sum(someotherstuff) from table1,2,3 where ...',String,Integer,Integer)->collect(xtuple|let xobject=SomeNewTransient.Create in (xobject.Key:=xtuple.Part1;xobject.SomeSum:=xtuple.Part2))
Also, look here: OCLOperators sqlpassthroughobjects, PSEval, PSEvalValue, PSEvalTuples