Usuário com melhor resposta
Dúvida com procedure

Pergunta
-
Olá pessoal,
Estou usando uma função para listar determinados registros de uma tabela através de uma stored procedure.
Criei a sp da seguinte maneira:
CREATE PROCEDURE spListarStatusChamados
AS
SELECT * FROM TStatusChamados
ORDER BY IdStatusChamado
GO
Está funcionado corretamente, trazendo todos os registros da tabela. A função pode receber parämetros opcionais, os quais estariam na cláusula WHERE. A dúvida é: como devo montar a sp para que ela funcione com ou sem a passagem de parâmetros?
Obrigada.dt = obj.obterDadosProcedure(getDataTable, getProcListar, hs)
obj =
Nothing Return (dt.DataSet) End Functionbanco.CriarObjetosBanco()
banco.command.CommandText = NomeProcedure
dt.BeginLoadData()
banco.DataAdapter.TableMappings.Add(DTM)
banco.conexao.Open()
banco.ObterParametros(banco.command)
preencherParametros(banco.command, parametros)
Dim ds As DataSet
ds = dt.DataSet
banco.DataAdapter.Fill(ds)
Catch er As OleDb.OleDbException
Throw New ApplicationException("Ocorreu um erro durante o processo de obtenção do dataset", er)
End Try
banco.FechaConexao()
dt.EndLoadData()
Protected Overrides Function getDataTable() As DataTable
Dim _DataBase As New DataSet
Return _DataBase.Tables.Add("TStatusChamados")
End Function
Respostas
-
CREATE PROCEDURE spListarStatusChamados @parametro int = null
AS
SELECT * FROM TStatusChamadoswhere campo = isnull(@parametro,campo)
ORDER BY IdStatusChamado -
nao testei mais veja se funciona
CREATE PROCEDURE spListarStatusChamados @parametro1 int = null , @parametro2 int = null
AS
SELECT * FROM TStatusChamadoswhere campo between isnull(@parametro1,campo) and isnull(@parametro2,campo)
ORDER BY IdStatusChamadoAbs;
-
Todas as Respostas
-
CREATE PROCEDURE spListarStatusChamados @parametro int = null
AS
SELECT * FROM TStatusChamadoswhere campo = isnull(@parametro,campo)
ORDER BY IdStatusChamado -
Olá Marcelo, obrigada por responder, era isso mesmo que eu estava precisando, funcionou.
Aproveitando, tenho mais uma dúvida e talvez vc possa me ajudar: no caso, se eu quiser listar um intervalo de registros de uma tabela, usando between, como ficaria esta procedure já que os parâmetros são opcionais?
Obrigada! -
nao testei mais veja se funciona
CREATE PROCEDURE spListarStatusChamados @parametro1 int = null , @parametro2 int = null
AS
SELECT * FROM TStatusChamadoswhere campo between isnull(@parametro1,campo) and isnull(@parametro2,campo)
ORDER BY IdStatusChamadoAbs;
-
-