Forum Pplware

Versão Completa: Sql query com multiplas variaveis
Está de momento a ver uma versão reduzida do nosso conteúdo. Ver versão completa com o formato adequado.
Páginas: 1 2
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.
Desculpa mas não percebi nada, vais ter de te explicar melhor o que pretendes que a query te retorne..
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 :/
"if"s para que te quero? --'
Ainda não percebi muito bem, mas já experimentaste usando "OR" em vez de "AND" ?
(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.
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
(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.
(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.
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.
Páginas: 1 2
URL's de Referência