Colocar Resposta 
 
Avaliação do Tópico:
  • 0 votos - 0 Média
  • 1
  • 2
  • 3
  • 4
  • 5
Sql query com multiplas variaveis
09-01-2009, 17:15
Mensagem: #1
Sql query com multiplas variaveis
Boas,

Estou a chamar uma funcao onde vou fazer uma pesquisa linq,mas tb podera ser com sql injection,o importante e funcionar,a funcao e a seguinte:

SearchProduct(String InternalReference,String ProductReference,int Status,String ProductName);

Em que os argumentos podem ser todos null ou 0 no caso do int excepto 1 deles ou so um deles ser nulo,mas eu nc sei e pretendia fazer uma peskisa k me devolvesse os resultados,é necessario fazer uma query para cada caso ou é possivel fazer uma query que abranja todos os casos?

Obrigado.
Visitar Website de este utilizador Procurar todas as mensagens deste utilizador
Citar esta mensagem numa resposta
09-01-2009, 17:24
Mensagem: #2
RE: Sql query com multiplas variaveis
Desculpa mas não percebi nada, vais ter de te explicar melhor o que pretendes que a query te retorne..

BrunoBernardino.com
Visitar Website de este utilizador Procurar todas as mensagens deste utilizador
Citar esta mensagem numa resposta
09-01-2009, 17:47
Mensagem: #3
RE: Sql query com multiplas variaveis
Pretendo que a query me retorne um grupo de produtos que estejam de acordo com os argumentos que eu dou,por exemplo imaginando que nenhum dos argumentos era null e o status era maior que 0 uma query valida seria:

SQL query: Select * from products where products.InternalReference = argInternalReference and
products.ProductReference = argProductReference and
products.Status = argStatus and
products.Name = argProductName;

Linq query: var productsList = from i in database.Products where i.InternalReference == InternalReference &&
i.ProductReference == ProductReference &&
i.Status == Status &&
i.Name == ProductName
select i;

Mas basta um deles ser igual null para as querys me retornarem sp grupo de productos vazios,e o que eu quero e uma query que me resolva esse problema.N sou grande especialista em SQL,sei o basico :/
Visitar Website de este utilizador Procurar todas as mensagens deste utilizador
Citar esta mensagem numa resposta
10-01-2009, 13:44
Mensagem: #4
RE: Sql query com multiplas variaveis
"if"s para que te quero? --'
Procurar todas as mensagens deste utilizador
Citar esta mensagem numa resposta
10-01-2009, 13:48
Mensagem: #5
RE: Sql query com multiplas variaveis
Ainda não percebi muito bem, mas já experimentaste usando "OR" em vez de "AND" ?

BrunoBernardino.com
Visitar Website de este utilizador Procurar todas as mensagens deste utilizador
Citar esta mensagem numa resposta
10-01-2009, 13:54
Mensagem: #6
RE: Sql query com multiplas variaveis
(10-01-2009 13:48)Bruno Bernardino Escreveu:  Ainda não percebi muito bem, mas já experimentaste usando "OR" em vez de "AND" ?

E uma validação de campos antes de pesquisar na query não? lol É uma coisa que dá jeito, assim elimina logo à partida os campos nulos. Parece-me.
Procurar todas as mensagens deste utilizador
Citar esta mensagem numa resposta
12-01-2009, 13:32
Mensagem: #7
RE: Sql query com multiplas variaveis
Assumindo que estás a interagir com um MS SQL Server, podes usar esta função para verificar se um campo é dbnull: ISNULL ( check_expression , replacement_value )

Dá uma olhadela a esta página no MSDN:

http://msdn.microsoft.com/en-us/library/ms184325.aspx

Pedro Silva
Procurar todas as mensagens deste utilizador
Citar esta mensagem numa resposta
12-01-2009, 13:56
Mensagem: #8
RE: Sql query com multiplas variaveis
(10-01-2009 13:54)drink Escreveu:  
(10-01-2009 13:48)Bruno Bernardino Escreveu:  Ainda não percebi muito bem, mas já experimentaste usando "OR" em vez de "AND" ?

E uma validação de campos antes de pesquisar na query não? lol É uma coisa que dá jeito, assim elimina logo à partida os campos nulos. Parece-me.

Parece-me que lhe interessa poder ter nulos, mas não quer que invalidem a query.

BrunoBernardino.com
Visitar Website de este utilizador Procurar todas as mensagens deste utilizador
Citar esta mensagem numa resposta
12-01-2009, 15:04 (Esta mensagem foi modificada pela última vez a: 13-01-2009 04:03 por drink.)
Mensagem: #9
RE: Sql query com multiplas variaveis
(12-01-2009 13:56)Bruno Bernardino Escreveu:  
(10-01-2009 13:54)drink Escreveu:  
(10-01-2009 13:48)Bruno Bernardino Escreveu:  Ainda não percebi muito bem, mas já experimentaste usando "OR" em vez de "AND" ?

E uma validação de campos antes de pesquisar na query não? lol É uma coisa que dá jeito, assim elimina logo à partida os campos nulos. Parece-me.

Parece-me que lhe interessa poder ter nulos, mas não quer que invalidem a query.

Mas pode ter os nulos na mesma, a diferença é que fazendo a validação fica a saber quais é que são nulos e escusa de fazer a pesquisa a partir deles.

Tipo:
Código PHP:
if ((campo1 == "") && (campo2 != "") && (campo3 != "")) {
resultado select from tabela where tabela.campo2 campo2 and tabela.campo3 campo3;
}
else if ((
campo1 != "") && (campo2 == "") && (campo3 != "")) {
resultado select from tabela where tabela.campo1 campo1 and tabela.campo3 campo3;
}
else if... 

e por ai fora..

Aconselhava então a criar um script externo e que tivesse uma ligação a ir buscar o script para não sobrecarregar a página.
Procurar todas as mensagens deste utilizador
Citar esta mensagem numa resposta
14-01-2009, 11:45
Mensagem: #10
RE: Sql query com multiplas variaveis
A query e feita numa aplicacao rica,o meu objectivo era msm n validar os campos e fazer uma query que os validasse,sera k com um join talvez conseguisse resolver alguma coisa? É apenas uma ideia.
Visitar Website de este utilizador Procurar todas as mensagens deste utilizador
Citar esta mensagem numa resposta
Colocar Resposta 


Saltar Fórum:


Utilizadores a ver este tópico: 1 Visitante(s)