Clarify SupportStoredProceduresResult behavior across providers
This commit is contained in:
@@ -4,6 +4,26 @@ Stored procedure support is available through `db.Procedures` when `DynamicDatab
|
|||||||
|
|
||||||
This page documents actual runtime behavior from `DynamicProcedureInvoker`.
|
This page documents actual runtime behavior from `DynamicProcedureInvoker`.
|
||||||
|
|
||||||
|
## `SupportStoredProceduresResult` and Provider Differences
|
||||||
|
|
||||||
|
`DynamicProcedureInvoker` can treat the procedure "main result" as either:
|
||||||
|
|
||||||
|
- affected rows from `ExecuteNonQuery()`
|
||||||
|
- provider return value parameter
|
||||||
|
|
||||||
|
This behavior is controlled by `DynamicDatabaseOptions.SupportStoredProceduresResult`.
|
||||||
|
|
||||||
|
- `true`: if a return-value parameter is present, invoker uses that value as main result
|
||||||
|
- `false`: invoker keeps `ExecuteNonQuery()` result (safer for providers that do not expose SQL Server-like return value behavior)
|
||||||
|
|
||||||
|
Why this matters:
|
||||||
|
|
||||||
|
- SQL Server commonly supports procedure return values in this style
|
||||||
|
- some providers (for example Oracle setups) do not behave the same way
|
||||||
|
- forcing return-value extraction on such providers can cause runtime errors or invalid result handling
|
||||||
|
|
||||||
|
If procedures fail on non-SQL Server providers, first disable `SupportStoredProceduresResult` and rely on explicit `out_` parameters for status/result codes.
|
||||||
|
|
||||||
## Invocation Basics
|
## Invocation Basics
|
||||||
|
|
||||||
```csharp
|
```csharp
|
||||||
@@ -232,7 +252,11 @@ var code = (int)res.code;
|
|||||||
- Mapping to class fails silently (dynamic fallback):
|
- Mapping to class fails silently (dynamic fallback):
|
||||||
- ensure output model is mappable and keys match columns/properties
|
- ensure output model is mappable and keys match columns/properties
|
||||||
- Return value not appearing:
|
- Return value not appearing:
|
||||||
- ensure `ret_` parameter is supplied, or enable provider option `SupportStoredProceduresResult`
|
- ensure `ret_` parameter is supplied
|
||||||
|
- ensure provider option `SupportStoredProceduresResult` matches your DB behavior
|
||||||
|
- Procedure call errors on non-SQL Server providers:
|
||||||
|
- set `SupportStoredProceduresResult = false`
|
||||||
|
- return status via explicit `out_` parameters instead of return-value semantics
|
||||||
|
|
||||||
## Notes
|
## Notes
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user