diff --git a/AmalgamationTool/DynamORM.Amalgamation.cs b/AmalgamationTool/DynamORM.Amalgamation.cs
index cb95713..7090941 100644
--- a/AmalgamationTool/DynamORM.Amalgamation.cs
+++ b/AmalgamationTool/DynamORM.Amalgamation.cs
@@ -3657,6 +3657,9 @@ namespace DynamORM
/// Database support stored procedures (EXEC procedure ...).
SupportStoredProcedures = 0x00000100,
+ /// Database support stored procedures results (Return value).
+ SupportStoredProceduresResult = 0x00000200,
+
/// Database support with no lock syntax.
SupportNoLock = 0x00001000,
@@ -5882,14 +5885,20 @@ namespace DynamORM
else
{
var returnName = _db.GetParameterName("___result___");
- if (!retIsAdded)
- cmd.AddParameter(returnName, ParameterDirection.ReturnValue, DbType.Int32, 4, 0, 0, DBNull.Value);
+ if ((_db.Options & DynamicDatabaseOptions.SupportStoredProceduresResult) == DynamicDatabaseOptions.SupportStoredProceduresResult)
+ {
+ if (!retIsAdded)
+ cmd.AddParameter(returnName, ParameterDirection.ReturnValue, DbType.Int32, 4, 0, 0, DBNull.Value);
+ }
mainResult = cmd.ExecuteNonQuery();
IDbDataParameter returnParam = null;
if (!retIsAdded)
- returnParam = cmd.Parameters[returnName] as IDbDataParameter;
+ {
+ if ((_db.Options & DynamicDatabaseOptions.SupportStoredProceduresResult) == DynamicDatabaseOptions.SupportStoredProceduresResult)
+ returnParam = cmd.Parameters[returnName] as IDbDataParameter;
+ }
else
{
foreach (var e in cmd.Parameters)
diff --git a/DynamORM/DynamicDatabaseOptions.cs b/DynamORM/DynamicDatabaseOptions.cs
index 3d4ba42..97de33d 100644
--- a/DynamORM/DynamicDatabaseOptions.cs
+++ b/DynamORM/DynamicDatabaseOptions.cs
@@ -59,6 +59,9 @@ namespace DynamORM
/// Database support stored procedures (EXEC procedure ...).
SupportStoredProcedures = 0x00000100,
+ /// Database support stored procedures results (Return value).
+ SupportStoredProceduresResult = 0x00000200,
+
/// Database support with no lock syntax.
SupportNoLock = 0x00001000,
diff --git a/DynamORM/DynamicProcedureInvoker.cs b/DynamORM/DynamicProcedureInvoker.cs
index 352431a..699d6f7 100644
--- a/DynamORM/DynamicProcedureInvoker.cs
+++ b/DynamORM/DynamicProcedureInvoker.cs
@@ -380,14 +380,20 @@ namespace DynamORM
else
{
var returnName = _db.GetParameterName("___result___");
- if (!retIsAdded)
- cmd.AddParameter(returnName, ParameterDirection.ReturnValue, DbType.Int32, 4, 0, 0, DBNull.Value);
+ if ((_db.Options & DynamicDatabaseOptions.SupportStoredProceduresResult) == DynamicDatabaseOptions.SupportStoredProceduresResult)
+ {
+ if (!retIsAdded)
+ cmd.AddParameter(returnName, ParameterDirection.ReturnValue, DbType.Int32, 4, 0, 0, DBNull.Value);
+ }
mainResult = cmd.ExecuteNonQuery();
IDbDataParameter returnParam = null;
if (!retIsAdded)
- returnParam = cmd.Parameters[returnName] as IDbDataParameter;
+ {
+ if ((_db.Options & DynamicDatabaseOptions.SupportStoredProceduresResult) == DynamicDatabaseOptions.SupportStoredProceduresResult)
+ returnParam = cmd.Parameters[returnName] as IDbDataParameter;
+ }
else
{
foreach (var e in cmd.Parameters)