Usuário com melhor resposta
Como pegar valor gerado pela função no PostgreSQL?

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 :)
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".
- Editado Juliano Nunes Silva Oliveira sexta-feira, 18 de novembro de 2016 00:15
- Marcado como Resposta Filipe Lobato sexta-feira, 18 de novembro de 2016 18:10
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".
- Editado Juliano Nunes Silva Oliveira sexta-feira, 18 de novembro de 2016 00:15
- Marcado como Resposta Filipe Lobato sexta-feira, 18 de novembro de 2016 18:10
-
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".