none
Como pegar valor gerado pela função no PostgreSQL? RRS feed

  • Pergunta

  • Boa tarde,

    Estou com uma dúvida, na qual quero pegar um valor (string) gerado por uma função minha ela "return str_nome_tabela" fiz da seguinte forma no VB.NET :

        Public Sub nomeiaTabelaViaPostgreSQL(ByVal str_codregional, ByVal Data,
                                          ByVal str_origem_dados, ByVal str_fonte_dados, ByVal str_nometipogravacaodados)
    
            Using conn = New NpgsqlConnection(ConexaoPG)
                Dim dt As New DataTable()
                Try
                    conn.Open()
                    Using cmd = New NpgsqlCommand()
                        cmd.Connection = conn
    
                        'Insert some data
                        cmd.CommandText = "alr._get_nome_tabela_alarmes"
                        cmd.CommandType = CommandType.StoredProcedure
                        cmd.Parameters.AddWithValue("str_codregional", str_codregional)
                        cmd.Parameters.AddWithValue("data", Data)
                        cmd.Parameters.AddWithValue("str_origem_dados", str_origem_dados)
                        cmd.Parameters.AddWithValue("str_fonte_dados", str_fonte_dados)
                        cmd.Parameters.AddWithValue("str_nometipogravacaodados", str_nometipogravacaodados)
    
                        Using reader = cmd.ExecuteReader()
                            While reader.Read()
                                Console.WriteLine(reader.GetString(0))
                            End While
                        End Using
    
                        MsgBox(str_nome_tabela)
    
    
                    End Using
                Catch ex As Exception
                    MsgBox(ex.ToString)
                End Try
            End Using
        End Sub

    Passei os parâmetros assim: 

    conexao.nomeiaTabelaViaPostgreSQL(text1, text2, text3, text4, text5)

    Só que não me retorna nada, queria pegar esse resultado do postgresql e trazer para a aplicação. Sei que é um Sub e não retorna valor. Mas como faço para ler esse valor retornado da função executado pelo postgresql pra eu atribuir a uma variável? Pra eu pegar o resultado assim por exemplo: 

    varialvelResultado = conexao.nomeiaTabelaViaPostgreSQL(text1, text2, text3, text4, text5)
    Se tiver alguma sugestão melhor, aceito :)


        
    quinta-feira, 17 de novembro de 2016 20:07

Respostas

  • Faça assim, Filipe:

    Public Function nomeiaTabelaViaPostgreSQL(ByVal str_codregional, ByVal Data,
                                          ByVal str_origem_dados, ByVal str_fonte_dados, ByVal str_nometipogravacaodados) As String
            Dim retorno As String
            Using conn = New NpgsqlConnection(ConexaoPG)
                Dim dt As New DataTable()
                Try
                    conn.Open()
                    Using cmd = New NpgsqlCommand()
                        cmd.Connection = conn
    
                        'Insert some data
                        cmd.CommandText = "alr._get_nome_tabela_alarmes"
                        cmd.CommandType = CommandType.StoredProcedure
                        cmd.Parameters.AddWithValue("str_codregional", str_codregional)
                        cmd.Parameters.AddWithValue("data", Data)
                        cmd.Parameters.AddWithValue("str_origem_dados", str_origem_dados)
                        cmd.Parameters.AddWithValue("str_fonte_dados", str_fonte_dados)
                        cmd.Parameters.AddWithValue("str_nometipogravacaodados", str_nometipogravacaodados)
    
                        Using reader = cmd.ExecuteReader()
                            If reader.Read()
                                retorno = reader.GetString(0)
                            End If
                        End Using
    
    
                    End Using
                Catch ex As Exception
                    MsgBox(ex.ToString)
                End Try
            End Using
    
            Return retorno
        End Sub

    PS: Quando a dúvida for a mesma, poste na mesma thread seja respondendo ou editando a pergunta original. Assim o fórum fica mais organizado.



    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".


    sexta-feira, 18 de novembro de 2016 00:13

Todas as Respostas

  • Faça assim, Filipe:

    Public Function nomeiaTabelaViaPostgreSQL(ByVal str_codregional, ByVal Data,
                                          ByVal str_origem_dados, ByVal str_fonte_dados, ByVal str_nometipogravacaodados) As String
            Dim retorno As String
            Using conn = New NpgsqlConnection(ConexaoPG)
                Dim dt As New DataTable()
                Try
                    conn.Open()
                    Using cmd = New NpgsqlCommand()
                        cmd.Connection = conn
    
                        'Insert some data
                        cmd.CommandText = "alr._get_nome_tabela_alarmes"
                        cmd.CommandType = CommandType.StoredProcedure
                        cmd.Parameters.AddWithValue("str_codregional", str_codregional)
                        cmd.Parameters.AddWithValue("data", Data)
                        cmd.Parameters.AddWithValue("str_origem_dados", str_origem_dados)
                        cmd.Parameters.AddWithValue("str_fonte_dados", str_fonte_dados)
                        cmd.Parameters.AddWithValue("str_nometipogravacaodados", str_nometipogravacaodados)
    
                        Using reader = cmd.ExecuteReader()
                            If reader.Read()
                                retorno = reader.GetString(0)
                            End If
                        End Using
    
    
                    End Using
                Catch ex As Exception
                    MsgBox(ex.ToString)
                End Try
            End Using
    
            Return retorno
        End Sub

    PS: Quando a dúvida for a mesma, poste na mesma thread seja respondendo ou editando a pergunta original. Assim o fórum fica mais organizado.



    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".


    sexta-feira, 18 de novembro de 2016 00:13
  • Faça assim, Filipe:

    Public Function nomeiaTabelaViaPostgreSQL(ByVal str_codregional, ByVal Data,
                                          ByVal str_origem_dados, ByVal str_fonte_dados, ByVal str_nometipogravacaodados) As String
            Dim retorno As String
            Using conn = New NpgsqlConnection(ConexaoPG)
                Dim dt As New DataTable()
                Try
                    conn.Open()
                    Using cmd = New NpgsqlCommand()
                        cmd.Connection = conn
    
                        'Insert some data
                        cmd.CommandText = "alr._get_nome_tabela_alarmes"
                        cmd.CommandType = CommandType.StoredProcedure
                        cmd.Parameters.AddWithValue("str_codregional", str_codregional)
                        cmd.Parameters.AddWithValue("data", Data)
                        cmd.Parameters.AddWithValue("str_origem_dados", str_origem_dados)
                        cmd.Parameters.AddWithValue("str_fonte_dados", str_fonte_dados)
                        cmd.Parameters.AddWithValue("str_nometipogravacaodados", str_nometipogravacaodados)
    
                        Using reader = cmd.ExecuteReader()
                            If reader.Read()
                                retorno = reader.GetString(0)
                            End If
                        End Using
    
    
                    End Using
                Catch ex As Exception
                    MsgBox(ex.ToString)
                End Try
            End Using
    
            Return retorno
        End Sub

    PS: Quando a dúvida for a mesma, poste na mesma thread seja respondendo ou editando a pergunta original. Assim o fórum fica mais organizado.



    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".


    Funcionou, obrigado, cara!
    sexta-feira, 18 de novembro de 2016 18:10