dotConnectPostgreSQL using procedure
Posted: Tue 23 Apr 2019 08:17
Hi I'm trying to use an imported procedure on a linqModel (lqml) but it gives me an error.
This is the definition of the procedure in dataContext:
[Function(Name=@"icacode.verificatoken")]
public void Verificatoken([Parameter(Name="in_id_token", DbType="CHARACTER VARYING")] string in_id_token, [Parameter(Name="n_matricola_operatore", DbType="CHARACTER VARYING")] ref string n_matricola_operatore, [Parameter(Name="n_cod_centro_costo", DbType="CHARACTER VARYING")] ref string n_cod_centro_costo, [Parameter(Name="n_id_paz", DbType="CHARACTER VARYING")] ref string n_id_paz, [Parameter(Name="n_visit_number", DbType="CHARACTER VARYING")] ref string n_visit_number)
{
IExecuteResult _VerificatokenResult = this.ExecuteMethodCall(this, ((MethodInfo)(MethodInfo.GetCurrentMethod())), in_id_token, n_matricola_operatore, n_cod_centro_costo, n_id_paz, n_visit_number);
n_matricola_operatore = ((string)(_VerificatokenResult.GetParameterValue(1)));
n_cod_centro_costo = ((string)(_VerificatokenResult.GetParameterValue(2)));
n_id_paz = ((string)(_VerificatokenResult.GetParameterValue(3)));
n_visit_number = ((string)(_VerificatokenResult.GetParameterValue(4)));
}
This is calling procedure:
string matricola = "";
string cdc = "";
string IdPaziente = "";
string visit = "";
ctx.Verificatoken("111", ref matricola, ref cdc, ref IdPaziente, ref visit);
Verificatoken is a procedure with output parameters
but when call this return error:
[PgSqlException (0x80004005): icacode.verificatoken(unknown, unknown, unknown, unknown, unknown) è una procedura]
Devart.Data.PostgreSql.e.f(r A_0) +217
Devart.Data.PostgreSql.r.n() +138
Devart.Data.PostgreSql.PgSqlCommand.InternalPrepare(Boolean implicitPrepare, Int32 startRecord, Int32 maxRecords) +1107
Devart.Common.DbCommandBase.ExecuteDbDataReader(CommandBehavior behavior, Boolean nonQuery) +911
Devart.Common.DbCommandBase.ExecuteNonQuery() +31
Devart.Data.Linq.DataProvider.a(av A_0, Object[] A_1) +2686
[LinqCommandExecutionException: Error on executing DbCommand.]
Devart.Data.Linq.LinqCommandExecutionException.CanThrowLinqCommandExecutionException(String message, Exception e) +75
Devart.Data.Linq.DataProvider.a(av A_0, Object[] A_1) +5037
ICACODE.Core.DBDataContext.Verificatoken(String in_id_token, String& n_matricola_operatore, String& n_cod_centro_costo, String& n_id_paz, String& n_visit_number) +322
ICACODE.Web.Login.Page_Load(Object sender, EventArgs e) in C:\Users\Matteo\Documents\Visual Studio 2017\Projects\Crediti08\IcaCode_TEST\ICACODE\ICACODE.Web\Login.aspx.cs:41
System.Web.UI.Control.OnLoad(EventArgs e) +106
System.Web.UI.Control.LoadRecursive() +68
System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +3785
Can anyone help me?
This is the definition of the procedure in dataContext:
[Function(Name=@"icacode.verificatoken")]
public void Verificatoken([Parameter(Name="in_id_token", DbType="CHARACTER VARYING")] string in_id_token, [Parameter(Name="n_matricola_operatore", DbType="CHARACTER VARYING")] ref string n_matricola_operatore, [Parameter(Name="n_cod_centro_costo", DbType="CHARACTER VARYING")] ref string n_cod_centro_costo, [Parameter(Name="n_id_paz", DbType="CHARACTER VARYING")] ref string n_id_paz, [Parameter(Name="n_visit_number", DbType="CHARACTER VARYING")] ref string n_visit_number)
{
IExecuteResult _VerificatokenResult = this.ExecuteMethodCall(this, ((MethodInfo)(MethodInfo.GetCurrentMethod())), in_id_token, n_matricola_operatore, n_cod_centro_costo, n_id_paz, n_visit_number);
n_matricola_operatore = ((string)(_VerificatokenResult.GetParameterValue(1)));
n_cod_centro_costo = ((string)(_VerificatokenResult.GetParameterValue(2)));
n_id_paz = ((string)(_VerificatokenResult.GetParameterValue(3)));
n_visit_number = ((string)(_VerificatokenResult.GetParameterValue(4)));
}
This is calling procedure:
string matricola = "";
string cdc = "";
string IdPaziente = "";
string visit = "";
ctx.Verificatoken("111", ref matricola, ref cdc, ref IdPaziente, ref visit);
Verificatoken is a procedure with output parameters
but when call this return error:
[PgSqlException (0x80004005): icacode.verificatoken(unknown, unknown, unknown, unknown, unknown) è una procedura]
Devart.Data.PostgreSql.e.f(r A_0) +217
Devart.Data.PostgreSql.r.n() +138
Devart.Data.PostgreSql.PgSqlCommand.InternalPrepare(Boolean implicitPrepare, Int32 startRecord, Int32 maxRecords) +1107
Devart.Common.DbCommandBase.ExecuteDbDataReader(CommandBehavior behavior, Boolean nonQuery) +911
Devart.Common.DbCommandBase.ExecuteNonQuery() +31
Devart.Data.Linq.DataProvider.a(av A_0, Object[] A_1) +2686
[LinqCommandExecutionException: Error on executing DbCommand.]
Devart.Data.Linq.LinqCommandExecutionException.CanThrowLinqCommandExecutionException(String message, Exception e) +75
Devart.Data.Linq.DataProvider.a(av A_0, Object[] A_1) +5037
ICACODE.Core.DBDataContext.Verificatoken(String in_id_token, String& n_matricola_operatore, String& n_cod_centro_costo, String& n_id_paz, String& n_visit_number) +322
ICACODE.Web.Login.Page_Load(Object sender, EventArgs e) in C:\Users\Matteo\Documents\Visual Studio 2017\Projects\Crediti08\IcaCode_TEST\ICACODE\ICACODE.Web\Login.aspx.cs:41
System.Web.UI.Control.OnLoad(EventArgs e) +106
System.Web.UI.Control.LoadRecursive() +68
System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +3785
Can anyone help me?