Calling a Packaged Procedure via .Net

Someone recently posted a question in the Postgres Forums about how to call a package in Advanced Server. He also had a question about how to call a packaged procedure in a specific schema.

Here is my reply to the question:


You can’t actually execute packages. You execute the procedures or functions in them. Here is some code to execute a procedure in a package. I am using public as the schema name. If you want to execute a procedure in a user’s schema, just replace public with the user’s name.

using System;using System.Data;using EnterpriseDB.EDBClient;

namespace ConsoleApplication2{    class Program    {        static void Main(string[] args)        {            EDBConnection conn =               new EDBConnection(                     "Server=localhost;" +                     "Port=5444;" +                     "User Id=enterprisedb;" +                     "Password=enterprisedb;" +                     "Database=edb");

            conn.Open();            EDBCommand cmd = new EDBCommand();            cmd.Connection = conn;

            int vEmpId = 7876;            String query = "public.emp_admin.fire_emp(:e_id)";            cmd.CommandText = query;            cmd.CommandType = CommandType.StoredProcedure;

            EDBParameter prm = new EDBParameter(                             "e_id",                              EDBTypes.EDBDbType.Integer);

            cmd.Parameters.Add(prm);

            cmd.Parameters[0].Value = vEmpId;    

            cmd.Prepare();

            cmd.ExecuteNonQuery();

            conn.Close();        }    }}

You can follow any responses to this entry through the RSS 2.0 feed. You can leave a response, or trackback from your own site.

Leave a Reply

XHTML: You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>