Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

PetaPoco and output parameters from stored procedures?

I'm trying to setup an output parameter using PetaPoco. I found someone using this sample online:

var ctx = new CustomDBDatabase();
var total = new SqlParameter("Total", System.Data.SqlDbType.Int);
total.Direction = System.Data.ParameterDirection.Output;

var results = ctx.Query<DBEntity>("exec GetDBEntities @StartIndex, @MaxIndex, @TotalCount = @Total out", 
  id, start, max, total);

int totalCount = (int)total.Value;

However, total.value returns null, even though when I run this statement directly against SQL Server, it returns me 3. Is this setup correctly with PetaPoco? Are output parameters supported?

Thanks.

like image 794
Brian Mains Avatar asked Jan 19 '23 00:01

Brian Mains


1 Answers

This is supported. But your current syntax is wrong anyways.

var ctx = new CustomDBDatabase();
var total = new SqlParameter("TotalCount", System.Data.SqlDbType.Int);
total.Direction = System.Data.ParameterDirection.Output;

var results = ctx.Query<DBEntity>("exec GetDBEntities @StartIndex, @MaxIndex, @TotalCount OUTPUT", new { StartIndex = start, MaxIndex = max, TotalCount = total});

int totalCount = (int)total.Value;

Something like this should work though. Not quite sure of the sql syntax but this should get you on your way.

like image 192
Schotime Avatar answered Mar 05 '23 09:03

Schotime