SQL 2005 SELECT X VARIAVEL
Amigos fiz uma procedure para retornar um recordset, so q queria passar o campo em q vai ser feita a busca.
ex.
Create procedure SelecionaCliente
@Campo nvarchar(30),
@Conteudo nvarchar(200)
as
Select clinome, clicontato from tabcliente @campo like @Conteudo
******** so q isso nao funciona.. alguem sabe como fazer esta procedure do sql .
Valeu pela ajuda...
ex.
Create procedure SelecionaCliente
@Campo nvarchar(30),
@Conteudo nvarchar(200)
as
Select clinome, clicontato from tabcliente @campo like @Conteudo
******** so q isso nao funciona.. alguem sabe como fazer esta procedure do sql .
Valeu pela ajuda...
Ninguem ainda fez uma procedure dessa...
Com vb e access eu faco assim
select clinome, clicontato from tabcliente " & sCampo & " like '" & sconteudo & "'
e isso me poupa muitas linhas de codigo....
Alguma ideia?
Com vb e access eu faco assim
select clinome, clicontato from tabcliente " & sCampo & " like '" & sconteudo & "'
e isso me poupa muitas linhas de codigo....
Alguma ideia?
tah faltando o WHERE...
Create procedure SelecionaCliente
@Campo nvarchar(30),
@Conteudo nvarchar(200)
as
DECLARE @Command nvarchar(4000)
SET='Select clinome, clicontato from tabcliente where ' + @campo + ' like ' + @Conteudo
EXEC sp_executesql @Command
Go
onde eu "monto" a string de consulta e depois uso o sp_executesql para fazer a consulta
qualquer coisa pergunta denovo
Certo Ramses...
Acho q entendi a ideia... mas e essa sp_executesql como vc criou essa procedure ou ela ja e do sql.. pois o meu ainda da erro, aqui esta minha procedure
ALTER PROCEDURE SelecionaCliente
@Codigo int,
@Campo nvarchar(30),
@Conteudo nvarchar(200)
AS
Begin
IF @Codigo = 0
Begin
Select clicod, clicliente, clinfantasia, clicontato, cliie, clicnpj,
cliendereco, clibairro, climunicipio, cliuf, clicep, clitel1,
clitel2, clitel3, cliobs From tabCliente where cliCliente like @Conteudo + '%'
end
Else
Begin
DECLARE @Command nvarchar(4000)
set @Command = 'Select clicod, clicliente, clinfantasia, clicontato, cliie, clicnpj,
cliendereco, clibairro, climunicipio, cliuf, clicep, clitel1,
clitel2, clitel3, cliobs From tabCliente where ' + @Campo + ' = ' + @Codigo
EXEC sp_Executesql @Command
end
end
Acho q entendi a ideia... mas e essa sp_executesql como vc criou essa procedure ou ela ja e do sql.. pois o meu ainda da erro, aqui esta minha procedure
ALTER PROCEDURE SelecionaCliente
@Codigo int,
@Campo nvarchar(30),
@Conteudo nvarchar(200)
AS
Begin
IF @Codigo = 0
Begin
Select clicod, clicliente, clinfantasia, clicontato, cliie, clicnpj,
cliendereco, clibairro, climunicipio, cliuf, clicep, clitel1,
clitel2, clitel3, cliobs From tabCliente where cliCliente like @Conteudo + '%'
end
Else
Begin
DECLARE @Command nvarchar(4000)
set @Command = 'Select clicod, clicliente, clinfantasia, clicontato, cliie, clicnpj,
cliendereco, clibairro, climunicipio, cliuf, clicep, clitel1,
clitel2, clitel3, cliobs From tabCliente where ' + @Campo + ' = ' + @Codigo
EXEC sp_Executesql @Command
end
end
muda
+ @Codigo
para
+ CHAR(39) + CONVERT(nvarchar,@Codigo) + CHAR(39)
pq ta erro qd tenta juntar int com um nvarchar e o CHAR(39) eh para colocar as aspas(')
+ @Codigo
para
+ CHAR(39) + CONVERT(nvarchar,@Codigo) + CHAR(39)
pq ta erro qd tenta juntar int com um nvarchar e o CHAR(39) eh para colocar as aspas(')
RamSes.. valeu mesmo pela ajuda q esta me dando.. mais ainda ta dando um erro
The name 'Select clicod, clicliente, clinfantasia, clicontato, cliie, clicnpj,cliendereco, clibairro, climunicipio, cliuf, clicep, clitel1, clitel2, clitel3, cliobs From tabCliente where clicliente = 'aaa'' is not a valid identifier.
Minha consulta esta assim
DECLARE @Command nvarchar(4000)
set @Command = 'Select clicod, clicliente, clinfantasia, clicontato, cliie, clicnpj,cliendereco, clibairro, climunicipio, cliuf, clicep, clitel1, clitel2, clitel3, cliobs From tabCliente where '+ @Campo + ' = ' + CHAR(39) + CONVERT(nvarchar,@Conteudo) + CHAR(39)
EXEC sp_executasql @Command
Aqui no Exec sp_executasql @Command eu posos mudar para EXEC @command?
The name 'Select clicod, clicliente, clinfantasia, clicontato, cliie, clicnpj,cliendereco, clibairro, climunicipio, cliuf, clicep, clitel1, clitel2, clitel3, cliobs From tabCliente where clicliente = 'aaa'' is not a valid identifier.
Minha consulta esta assim
DECLARE @Command nvarchar(4000)
set @Command = 'Select clicod, clicliente, clinfantasia, clicontato, cliie, clicnpj,cliendereco, clibairro, climunicipio, cliuf, clicep, clitel1, clitel2, clitel3, cliobs From tabCliente where '+ @Campo + ' = ' + CHAR(39) + CONVERT(nvarchar,@Conteudo) + CHAR(39)
EXEC sp_executasql @Command
Aqui no Exec sp_executasql @Command eu posos mudar para EXEC @command?
nao eh sp_executAsql eh sp_executEsql
sp_executesql eh um procedimento armazenado do sql que esta na base master, faz a mesma coisa que o EXEC,somente tem a diferenca que o executesql tem uma melhor performace(pq compila como se fosse uma SP normal) do que o exec sozinho
sp_executesql eh um procedimento armazenado do sql que esta na base master, faz a mesma coisa que o EXEC,somente tem a diferenca que o executesql tem uma melhor performace(pq compila como se fosse uma SP normal) do que o exec sozinho
Ramses... funcionou cara... valeu mesmo...
Precisando estamos ai... falow...
Precisando estamos ai... falow...
Tópico encerrado , respostas não são mais permitidas