OCLOperators sqlpassthrough
No edit summary
No edit summary
Line 1: Line 1:
SomeClass.sqlpassthrough('SqlExpression',Type1OfTupleResult,Type2OfTupleResult,...)  
SomeClass.sqlpassthrough('SqlExpression',Type1OfTupleResult,Type2OfTupleResult,...)  


Example of how the OCL look like to call a stored procedure  
Example of how the OCL looks like to call a stored procedure:
  Anvandare.sqlpassthrough('sp_Upd_Losen ' + self.AnvId.asString + ', \<nowiki>''</nowiki> + self.Anvandarnamn + '\', @aNyttLosenord', Int32)
  Anvandare.sqlpassthrough('sp_Upd_Losen ' + self.AnvId.asString + ', \<nowiki>''</nowiki> + self.Anvandarnamn + '\', @aNyttLosenord', Int32)
Notes
Notes:
* @aNyttLosenord here is automatically available because it's a variable available when the function is called
* @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]])
* 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]]).


* Int32 at the end is the SQL server return code
* Int32 at the end is the SQL server return code.
* Your expression starts with a '''class''' not an object
* Your expression starts with a '''class,''' not an object.
A use case and examples of using sqlPassThrough can be found here "[[PSExpression , or how to do things in the DB from MDriven]]"
A use case and examples of using sqlPassThrough can be found here: "[[PSExpression , or how to do things in the DB from MDriven|PSExpression, or how to do things in the DB from MDriven]]"


Note also that the sqlpassthrough can create tuples:
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))
  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]]
Also, look here: [[OCLOperators sqlpassthroughobjects]]
[[Category:OCLOperators]]
[[Category:OCLOperators]]

Revision as of 07:07, 6 March 2023

SomeClass.sqlpassthrough('SqlExpression',Type1OfTupleResult,Type2OfTupleResult,...)

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).
  • Int32 at the end is the SQL server return code.
  • Your expression starts with a class, not an object.

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

This page was edited 93 days ago on 02/10/2024. What links here