none
Como usar Stored Procedures em vb.net com Postgresql? RRS feed

  • Pergunta

  • Boa tarde, 

    Gostaria de saber como uso Stored Procedures com vb.net, pois já vi exemplos com SQL Server no qual é colocado somente o nome do Stored Procedure e os parâmetros e é executado. Mas não achei nada pra usar com postgresql Via Npgsql, e a stored procedure é através de plpgsql.

    sexta-feira, 30 de setembro de 2016 19:24

Respostas

  • Praticamente a mesma coisa que no SQL Server:

    public void ReadFromProcWithColumnList()
    {
       using (var conn = new Npgsql.NpgsqlConnection(ConnectionString: ConnString))
       {
           conn.Open();
           using (var tran = conn.BeginTransaction())
           using (var command = conn.CreateCommand())
           {
               command.CommandText = "SelectTestWithColumnList";
               command.CommandType = CommandType.StoredProcedure;
               command.Parameters.Add(new NpgsqlParameter());
               command.Parameters[0].NpgsqlDbType = NpgsqlDbType.Varchar;
               command.Parameters[0].Value = "AAPL";
               command.Parameters.Add(new NpgsqlParameter());
               command.Parameters[1].NpgsqlDbType = NpgsqlDbType.Varchar;
               command.Parameters[1].Value = "AsOfDate,Price";
               using (var dr = command.ExecuteReader())
               {
                   var rc = 0;
                   while (dr.Read())
                   {
                       Console.WriteLine((rc++) + " " + dr.GetDateTime(0) + " " + dr.GetDecimal(1));
                   }
               }
           }
       }
    }


    codigo da SP para o exemplo acima:

    CREATE OR REPLACE FUNCTION public.SelectTestWithColumnList (Ticker VARCHAR, ColumnList VARCHAR)
    RETURNS refcursor AS
    $body$
    DECLARE 
      ref1 refcursor;
    BEGIN
    
    OPEN ref1 FOR EXECUTE 
    'select ' || ColumnList || ' from Prices WHERE Ticker=$1;'
    USING     Ticker;
    RETURN ref1;
    
    END;
    $body$
    LANGUAGE 'plpgsql' 

    fonte:http://sqlblog.com/blogs/alexander_kuznetsov/archive/2013/11/01/learning-postgresql-functions-and-refcursors.aspx




    William John Adam Trindade
    Analyste-programmeur
    ----------------------------------------------------------

    sexta-feira, 30 de setembro de 2016 20:17
    Moderador

Todas as Respostas

  • Praticamente a mesma coisa que no SQL Server:

    public void ReadFromProcWithColumnList()
    {
       using (var conn = new Npgsql.NpgsqlConnection(ConnectionString: ConnString))
       {
           conn.Open();
           using (var tran = conn.BeginTransaction())
           using (var command = conn.CreateCommand())
           {
               command.CommandText = "SelectTestWithColumnList";
               command.CommandType = CommandType.StoredProcedure;
               command.Parameters.Add(new NpgsqlParameter());
               command.Parameters[0].NpgsqlDbType = NpgsqlDbType.Varchar;
               command.Parameters[0].Value = "AAPL";
               command.Parameters.Add(new NpgsqlParameter());
               command.Parameters[1].NpgsqlDbType = NpgsqlDbType.Varchar;
               command.Parameters[1].Value = "AsOfDate,Price";
               using (var dr = command.ExecuteReader())
               {
                   var rc = 0;
                   while (dr.Read())
                   {
                       Console.WriteLine((rc++) + " " + dr.GetDateTime(0) + " " + dr.GetDecimal(1));
                   }
               }
           }
       }
    }


    codigo da SP para o exemplo acima:

    CREATE OR REPLACE FUNCTION public.SelectTestWithColumnList (Ticker VARCHAR, ColumnList VARCHAR)
    RETURNS refcursor AS
    $body$
    DECLARE 
      ref1 refcursor;
    BEGIN
    
    OPEN ref1 FOR EXECUTE 
    'select ' || ColumnList || ' from Prices WHERE Ticker=$1;'
    USING     Ticker;
    RETURN ref1;
    
    END;
    $body$
    LANGUAGE 'plpgsql' 

    fonte:http://sqlblog.com/blogs/alexander_kuznetsov/archive/2013/11/01/learning-postgresql-functions-and-refcursors.aspx




    William John Adam Trindade
    Analyste-programmeur
    ----------------------------------------------------------

    sexta-feira, 30 de setembro de 2016 20:17
    Moderador
  • Ola Filipe?

    Conseguiu resolver o seu problema?

    Att


    William John Adam Trindade
    Analyste-programmeur
    ----------------------------------------------------------

    quinta-feira, 6 de outubro de 2016 19:08
    Moderador
  • Ola Filipe?

    Conseguiu resolver o seu problema?

    Att


    William John Adam Trindade
    Analyste-programmeur


    Sogi Informatique ltée
    If you found this post helpful, please "Vote as Helpful". If it actually answered your question, remember to "Mark as Answer". Se achou este post útil, por favor clique em "Votar como útil". Se por acaso respondeu sua dúvida, lembre de "Marcar como Resposta".

    quinta-feira, 30 de março de 2017 19:41
    Moderador