PESQUISA EM TODOS OS CAMPOS DA TABELA
Eu estou precisando de uma ajuda com o seguinte: Gostaria de utillizar um tetxbox para pesquisar em todos os campos de uma determinada tabela. Ou seja, especifico um termo no textbox e o select se dá em todos os campos. Utilizo FireBird.
Desde já agradeço,
Desde já agradeço,
ARCADYUM,
A minha ideia era fazer um SELECT com uma cláusula WHERE listando cada campo (em looping) igualando ao que você quer procurar... mas achei isso na internet (abaixo)... pode ser até seja melhor... talvez você precise adaptar para seu banco de dados:
========================================================
http://www.bufaloinfo.com.br/dicas.aspx?cod=998
Dica No : 998
Assunto : SQL Server
Titulo: Pesquisar por uma string em todos os campos de uma tabela
========================================================
Eventualmente, para alguns tipos de aplicações, pode ser desejável fazer uma pesquisa por um valor texto em todas as colunas de uma tabela. Para isso essa procedue abaixo pode auxiliar :
========================================================
A procedure usa um select em tabela de sistema para recuperar o nome das colunas da tabela que é recebida como parâmetro
é aberto um cursor com a lista de colunas da tabela recebida como parâmetro
Um laço no cursor monta uma clausula where para pesquisar em todas as colunas da tabela
O where e a instrução SQL são unidos e executados
========================================================
[][ô]s,
Tunusat.
A minha ideia era fazer um SELECT com uma cláusula WHERE listando cada campo (em looping) igualando ao que você quer procurar... mas achei isso na internet (abaixo)... pode ser até seja melhor... talvez você precise adaptar para seu banco de dados:
========================================================
http://www.bufaloinfo.com.br/dicas.aspx?cod=998
Dica No : 998
Assunto : SQL Server
Titulo: Pesquisar por uma string em todos os campos de uma tabela
========================================================
Eventualmente, para alguns tipos de aplicações, pode ser desejável fazer uma pesquisa por um valor texto em todas as colunas de uma tabela. Para isso essa procedue abaixo pode auxiliar :
CREATE PROCEDURE sp_FindStringInTable @stringToFind VARCHAR(100), @schema sysname, @table sysname
AS
DECLARE @sqlCommand VARCHAR(8000)
DECLARE @where VARCHAR(8000)
DECLARE @columnName sysname
DECLARE @cursor VARCHAR(8000)
BEGIN TRY
SET @sqlCommand = SELECT * FROM + @schema + . + @table + WHERE
SET @where =
SET @cursor = DECLARE col_cursor CURSOR FOR SELECT COLUMN_NAME
FROM + DB_NAME() + .INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_SCHEMA = + @schema +
AND TABLE_NAME = + @table +
AND DATA_TYPE IN (char,nchar,ntext,nvarchar,text,varchar)
EXEC (@cursor)
OPEN col_cursor
FETCH NEXT FROM col_cursor INTO @columnName
WHILE @@FETCH_STATUS = 0
BEGIN
IF @where <>
SET @where = @where + OR
SET @where = @where + + @columnName + LIKE + @stringToFind +
FETCH NEXT FROM col_cursor INTO @columnName
END
CLOSE col_cursor
DEALLOCATE col_cursor
SET @sqlCommand = @sqlCommand + @where
--PRINT @sqlCommand
EXEC (@sqlCommand)
END TRY
BEGIN CATCH
PRINT There was an error
IF CURSOR_STATUS(variable, col_cursor) <> -3
BEGIN
CLOSE col_cursor
DEALLOCATE col_cursor
END
END CATCH
========================================================
A procedure usa um select em tabela de sistema para recuperar o nome das colunas da tabela que é recebida como parâmetro
é aberto um cursor com a lista de colunas da tabela recebida como parâmetro
Um laço no cursor monta uma clausula where para pesquisar em todas as colunas da tabela
O where e a instrução SQL são unidos e executados
========================================================
[][ô]s,
Tunusat.
através da linguagem de manipulação de dados (DML) tudo é possÃvel
Pelo que entendi vc quer através de um SELCT * FROM WHERE [Ô]Vários Campos[Ô].
Tudo que precisa é saber o que quer, como quer e como utilizar os operadores lógicos do SQL. Eu particularmente só utilizo um filtro de pesquisa por questões de performace. Mas se não me engano vc pode pesquisar por vários campos utilizando o AND e/ou OR. O primeiro retornará resultados se todos os termos forem verdadeiros e o segundo retornará um resultado se pelo menos um dos termos forem verdadeiros. (Isso cai muito em provas de concurso, sugiro que estude a tabela verdade).
Ficaria mais ou menos assim:
Usando o And:
SELECT * FROM suaTabela WHERE campo1 = valor AND campo2 = valor AND campo3 = valor...
Usando o Or
SELECT * FROM suaTabela WHERE campo1 = valor OR campo2 = valor OR campo3 = valor...
é mais ou menos por aÃ! rsrsrs
é bom vc dar uma aprofundada no SQL e estudar sobre os operadores lógicos dele, blz!
Pelo que entendi vc quer através de um SELCT * FROM WHERE [Ô]Vários Campos[Ô].
Tudo que precisa é saber o que quer, como quer e como utilizar os operadores lógicos do SQL. Eu particularmente só utilizo um filtro de pesquisa por questões de performace. Mas se não me engano vc pode pesquisar por vários campos utilizando o AND e/ou OR. O primeiro retornará resultados se todos os termos forem verdadeiros e o segundo retornará um resultado se pelo menos um dos termos forem verdadeiros. (Isso cai muito em provas de concurso, sugiro que estude a tabela verdade).
Ficaria mais ou menos assim:
Usando o And:
SELECT * FROM suaTabela WHERE campo1 = valor AND campo2 = valor AND campo3 = valor...
Usando o Or
SELECT * FROM suaTabela WHERE campo1 = valor OR campo2 = valor OR campo3 = valor...
é mais ou menos por aÃ! rsrsrs
é bom vc dar uma aprofundada no SQL e estudar sobre os operadores lógicos dele, blz!
ARCADYUM,
A minha ideia inicial é mais ou menos isso:
=========================================
Quick Tips : Consultando as tabela e campos no Firebird através de tabelas de sistemas.
http://www.devmedia.com.br/quick-tips-consultando-as-tabela-e-campos-no-firebird-atraves-de-tabelas-de-sistemas/15066
=========================================
[][ô]s,
Tunusat.
A minha ideia inicial é mais ou menos isso:
=========================================
Quick Tips : Consultando as tabela e campos no Firebird através de tabelas de sistemas.
http://www.devmedia.com.br/quick-tips-consultando-as-tabela-e-campos-no-firebird-atraves-de-tabelas-de-sistemas/15066
=========================================
[][ô]s,
Tunusat.
Entendi,
Achei que seria possivel através de uma expressão Sql mais especifica que não conhecia.
Vou testar as duas e retorno.
Obrigado pela atenção. No caso vou utilizar um like nas expressões de busca.
Achei que seria possivel através de uma expressão Sql mais especifica que não conhecia.
Vou testar as duas e retorno.
Obrigado pela atenção. No caso vou utilizar um like nas expressões de busca.
Pessoal,
Obrigado pela atenção.
Obrigado pela atenção.
Tópico encerrado , respostas não são mais permitidas