Hi Steve,
As it turns out, the issue was that I was firing off the executable in our development environment from a desktop DOS window; my account did not have permission to run taGetNextJournalEntry. Our sysadmin guy granted me permission and now the code runs fine.
Correct me if I'm wrong, but it looks like you have a wrapper method for ExecuteNonquery(). Here's my slightly modified version - if you wouldn't mind letting me know if it looks okay:
private int getNextJENumber()
{
String storedProcName = "taGetNextJournalEntry";
int nextJE = 0;
using (SqlConnection GPConnection = new SqlConnection(MSDynamicsConnectionString))
{
GPConnection.Open();
SqlCommand sqlCommand = new SqlCommand(storedProcName, GPConnection);
sqlCommand.CommandType = CommandType.StoredProcedure;
SqlParameter[] sqlParameters = new SqlParameter[3];
sqlParameters[0] = new SqlParameter("@I_vInc_Dec", System.Data.SqlDbType.TinyInt);
sqlParameters[0].Value = 1;
sqlParameters[1] = new SqlParameter("@O_vJournalEntryNumber", System.Data.SqlDbType.Char, 13);
sqlParameters[1].Direction = ParameterDirection.Output;
sqlParameters[1].Value = 1;
sqlParameters[2] = new SqlParameter("@O_iErrorState", System.Data.SqlDbType.Int);
sqlParameters[2].Direction = ParameterDirection.Output;
sqlParameters[2].Value = 0;
sqlCommand.Parameters.Add(sqlParameters[0]);
sqlCommand.Parameters.Add(sqlParameters[1]);
sqlCommand.Parameters.Add(sqlParameters[2]);
sqlCommand.ExecuteNonQuery();
nextJE = Convert.ToInt32(sqlParameters[1].Value.ToString());
}
return nextJE;
}
Thanks,
Tom