Forum Pplware
Sql query com multiplas variaveis - Versão de Impressão

+- Forum Pplware (http://forum.pplware.com)
+-- Fórum: Mais Tech (/forumdisplay.php?fid=11)
+--- Fórum: Programação e Web (/forumdisplay.php?fid=16)
+--- Tópico: Sql query com multiplas variaveis (/showthread.php?tid=1359)

Páginas: 1 2


Sql query com multiplas variaveis - Shogun - 09-01-2009 17:15

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.


RE: Sql query com multiplas variaveis - Bruno Bernardino - 09-01-2009 17:24

Desculpa mas não percebi nada, vais ter de te explicar melhor o que pretendes que a query te retorne..


RE: Sql query com multiplas variaveis - Shogun - 09-01-2009 17:47

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 :/


RE: Sql query com multiplas variaveis - drink - 10-01-2009 13:44

"if"s para que te quero? --'


RE: Sql query com multiplas variaveis - Bruno Bernardino - 10-01-2009 13:48

Ainda não percebi muito bem, mas já experimentaste usando "OR" em vez de "AND" ?


RE: Sql query com multiplas variaveis - drink - 10-01-2009 13:54

(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.


RE: Sql query com multiplas variaveis - GygaByte - 12-01-2009 13:32

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


RE: Sql query com multiplas variaveis - Bruno Bernardino - 12-01-2009 13:56

(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.


RE: Sql query com multiplas variaveis - drink - 12-01-2009 15:04

(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.


RE: Sql query com multiplas variaveis - Shogun - 14-01-2009 11:45

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.