OCLOperators sqlpassthrough
Hans Karlsen (talk | contribs) 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 | 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 | 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 more than 11 months ago on 02/10/2024. What links here