Array
(
)

É possível consultar texto dentro de um campo BLOB ????

Armando.boza
   - 23 fev 2006

pessoal ... eu uso firebird 1.5.3 e tenho um campo blob onde armazeno textos, teria como eu consultar estes textos dentro do campo BLOB ???


Armando.boza
   - 23 fev 2006

sobe


Eniorm
   - 23 fev 2006

existe a função SUBSTRING que vc copia parte de um texto..

no caso do blob, ao ser exibido num DBGrid, aparece apenas <Blob> na celula, eu uso dessa forma pra contornar:

SELECT...
...
SUBSTRING(CAMPOBLOB FROM 1 FOR 100) AS CAMPO
...

assim o texto aparece corretamente,

talvez vc pode usar algo do tipo pra fazer a consulta

SELECT.....
...
WHERE
SUBSTRING(CAMPOBLOB FROM 1 FOR 100) LIKE ´TEXTO¬´


Armando.boza
   - 24 fev 2006


Citação:
existe a função SUBSTRING que vc copia parte de um texto..

no caso do blob, ao ser exibido num DBGrid, aparece apenas <Blob> na celula, eu uso dessa forma pra contornar:

SELECT...
...
SUBSTRING(CAMPOBLOB FROM 1 FOR 100) AS CAMPO
...

assim o texto aparece corretamente,

talvez vc pode usar algo do tipo pra fazer a consulta

SELECT.....
...
WHERE
SUBSTRING(CAMPOBLOB FROM 1 FOR 100) LIKE ´TEXTO¬´


Amigo ... na chamada para aparecer na dbgrid eu consigo fazer aparecer o texto, é só colocar no evento OnGetText no field da query a seguinte instrução:

#Código

Text := Sender.AsString;


Retorna legal na dbgrid, porém não consigo fazer uma consulta direta no campo, mas vou testar essa maneira que me falou, assim que conseguir retorno aqui o resultado ok.

valew


Eniorm
   - 24 fev 2006


Citação:

#Código

Text := Sender.AsString;



bom neste caso funciona, mas e se vc não tiver usando os TFields, dai a coisa muda, eheheheh... eu particularmente não uso os TFields, então faço manualmente pelo SQL, graças a função SUBSTRING do Firebird.

abraço


Armando.boza
   - 24 fev 2006

funcionou amigo ...

#Código

WHERE SUBSTRING(CAMPOBLOB FROM 1 FOR 100) LIKE ´TEXTO¬´


valew mesmo