Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Maneju

Stored Procedure Genérica

Recommended Posts

Olá.

 

 

Preciso fazer uma Stored Procedure Genérica para fazer buscas em cadastros.

Preciso passar os campos que constarão na consulta e o nome da tabela, tem como fazer isso?

 

PS - são sempre dois campos: Código e Descrição, porém em cada tabela eles tem um nome diferente por convenção da empresa.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá.

 

Murilo, se você puder fazer a gentileza de postar sua função eu vejo se dá para adaptar para o Delphi.

 

 

Abraços!

Compartilhar este post


Link para o post
Compartilhar em outros sites
 Private Function GetData(ByVal Tabela As String, ByVal CampoBusca As String, ByVal Parametro As String, ByVal CampoRetorno As String, Optional ByVal CampoEmpresa As String = "", Optional ByVal Empresa As String = "") As String
       Dim vReturn As String = ""
       Try
           Dim vDataBase As New DataBase
           vDataBase.SetOrigem = "obtendo " & CampoRetorno & " da tabela " & Tabela & " - módulo vendas"
           Dim vSql As String = ""
           If (vDataBase.ConectarDB() = True) Then
               If (CampoEmpresa <> "") And (Empresa <> "") Then
                   vSql = "SELECT * FROM Ninja.dbo." & Tabela & " WHERE " & CampoBusca & " = '" & Parametro & "' AND " & CampoEmpresa & " = '" & Empresa & "' ORDER BY " & CampoBusca
               Else
                   vSql = "SELECT * FROM Ninja.dbo." & Tabela & " WHERE " & CampoBusca & " = '" & Parametro & "' ORDER BY " & CampoBusca
               End If

               If (vDataBase.BuscarDados(vSql) = True) Then
                   If (vDataBase.Dados.Read) Then
                       vReturn = vDataBase.Dados(CampoRetorno)
                   End If
               End If
           End If
           vDataBase.FecharDb()
           vDataBase = Nothing
       Catch ex As Exception

       End Try
       Return vReturn
   End Function

Compartilhar este post


Link para o post
Compartilhar em outros sites

Como seu "BuscarDados" consegue executar a string que já contem o select?

 

bom, acho que descobri...

 

 

execute statement Sql

Compartilhar este post


Link para o post
Compartilhar em outros sites

esquece o BuscarDados, ele é um método da Classe DataBase, concentra na string

 

passe os parametros, nome da tabela, nome campo que quer buscar, e o parâmetro da busca, e campo de retorno e vai concatenando seu SQL

 

mais simplificado

 

private sub GetData(tabela as string, campobusca as string, valorbuscar as string, camporetorno as string)

 

dim SQL as string

SQL = "Select " & camporetorno & " FROM " & tabela & "WHERE " & campobusca & " = " & valorbuscar

 

 

ex:

 

call GetData(clientes, codigocliente, 150, telefone)

 

ficaria assim:

 

"Select telefone FROM clientes WHERE codigocliente = 150

 

ai você tem que passar esse sql para alguem executar, ai no delphi nao sei se é clientdataset, commandtext etc

Compartilhar este post


Link para o post
Compartilhar em outros sites

certo, esta parte de concatenar para montar a instrução sql beleza... mas eu quero executar isto numa stored procedure ou seja, não é o delphi quem vai executar é o FireBird.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.