Ir para conteúdo
Fórum Script Brasil
  • 0

pesquisa em campo blob


vms

Pergunta

Olá pessoal

Tenho uma aplicação com banco de dados firebird e Radstudio2010 onde preciso realizar uma consulta em um campo do tipo blob.

Vi muita gente com essa duvida mas nenhuma das respostas funcionaram. alguém pode me ajudar

já tentei assim

SQLQuery1.Close;
ClientDataSet1.Close;
SQLQuery1.SQL.Clear;
SQLQuery1.SQL.Add('Select * From GDM Where TEXTO2 like :PESQ');
SQLQuery1.Params.ParamByName('PESQ').Value := '%'+Edit1.Text+'%';
ClientDataSet1.Open;
Assim
SQLQuery1.SQL.Add('Select * From GDM Where TEXTO2 like :PESQ');
Assim
SQLQuery1.SQL.Add('Select * From GDM Where TEXTO2 containing  :PESQ');
Assim
SQLQuery1.SQL.Add('Select * From GDM Where TEXTO2 = :PESQ');
e assim e nenhuma funcionaram
SQLQuery1.SQL.Add('Select * From GDM Where TEXTO2 = palavra_que sei_q_existe');

Link para o comentário
Compartilhar em outros sites

7 respostass a esta questão

Posts Recomendados

  • 0
preciso realizar uma consulta em um campo do tipo blob.

Vi muita gente com essa duvida mas nenhuma das respostas funcionaram.

exemplo:

SELECT NUM, SERVICOS
FROM Ordemsvc
WHERE SERVICOS LIKE  '%PAINEL%'

OBS: o campo SERVICOS é do tipo Blob ... a palavra procurada é PAINEL

funciona certinho

abraço

Link para o comentário
Compartilhar em outros sites

  • 0
OBS: o campo SERVICOS é do tipo Blob ... a palavra procurada é PAINEL

funciona certinho

Realmente funciona, mas eu não tinha atentado para um detalhe, a acentuação. Eu estava pesquisando com Çç, Éé, Ãã.

Em campo varchar eu posso usar charset ISO8859_1 e collate PT_BR já no blob não.

sabe como posso resolver isso?

desde já agradeço.

Link para o comentário
Compartilhar em outros sites

  • 0

Jhonas, essa dica funciona direitinho com campo do tipo Varchar, mas estou usando campo do tipo Blob e não funciona. Você teria outra dica?

estou criando o campo assim, mas o collate assume o valor WIN1252

TEXTO1 BLOB SUB_TYPE 1 SEGMENT SIZE 6000 CHARACTER SET WIN1252 collate WIN_PTBR,

Estou usando IBExpert 2010 e Firebird 2.5

Obrigado.

Editado por vms
Link para o comentário
Compartilhar em outros sites

  • 0

SELECT NUM, SERVICOS
FROM Ordemsvc
WHERE SERVICOS LIKE  '%PAINEL%'

uso esse código no Paradox, Interbase e Mysql ... funciona direitinho

obs: o firebird é parecido com o interbase

experimente

TEXTO1 BLOB SUB_TYPE 1 SEGMENT SIZE 1 CHARACTER SET WIN1252

ou

TEXTO1 BLOB SUB_TYPE 1 SEGMENT SIZE 1 CHARACTER SET WIN1252 COLLATE PXW_INTL850

abraço

Link para o comentário
Compartilhar em outros sites

  • 0
TEXTO1 BLOB SUB_TYPE 1 SEGMENT SIZE 1 CHARACTER SET WIN1252

ou

TEXTO1 BLOB SUB_TYPE 1 SEGMENT SIZE 1 CHARACTER SET WIN1252 COLLATE PXW_INTL850

Olá Jhonas

Estou usando componentes do pacote TRichview e notei que se eu criar o campo desse maneira que voce indicou ocorre erro(eu já tinha tentado) e não compila. Parece que o TRichview so aceita BLOB Type Binary se colocar BLOB Type Text ele não aceita.

então fiz um "arranjo tecnico".

Criei assim

TEXTO1 BLOB(6000)

Cada caracere especial mostra o valor seguinte no modo texto, então na string de pesquisa em substituo o caractere especial pelo seu valor no texto, porque visualmente no trichview o texto aparece correto mas se visualizar em modo texto, fica todo desconfigurado. Aparentemente resolveu meu problema, mas você acha que terei problemas mais tarde fazendo assim?

01=Á -> 01=\'c1 | 22=á -> 22=\'e1

02=À -> 02=\'c0 | 23=à -> 23=\'e0

03=Ã -> 03=\'c3 | 24=ã -> 24=\'e3

04=Â -> 04=\'c2 | 25=â -> 25=\'e2

05=Ä -> 05=\'c4 | 26=ä -> 26=\'e4

06=É -> 06=\'c9 | 27=é -> 27=\'e9

07=È -> 07=\'c8 | 28=è -> 28=\'e8

08=Ê -> 08=\'ca | 29=ê -> 29=\'ea

09=Í -> 09=\'cd | 30=í -> 30=\'ed

10=Ì -> 10=\'cc | 31=ì -> 31=\'ec

11=Ó -> 11=\'d3 | 32=ó -> 32=\'f3

12=Ò -> 12=\'d2 | 33=ò -> 33=\'f2

13=Õ -> 13=\'d5 | 34=õ -> 34=\'f5

14=Ô -> 14=\'d4 | 35=ô -> 35=\'f4

15=Ö -> 15=\'d6 | 36=ö -> 36=\'f6

16=Ú -> 16=\'da | 37=ú -> 37=\'fa

17=Ù -> 17=\'d9 | 38=ù -> 38=\'f9

18=Û -> 18=\'db | 39=û -> 39=\'fb

19=Ü -> 19=\'dc | 40=ü -> 40=\'fc

20=Ç -> 20=\'c7 | 41=ç -> 41=\'e7

21=não -> 21=\'d1 | 42=não -> 42=\'f1

mais uma vez, obrigado pela atenção.

Editado por vms
Link para o comentário
Compartilhar em outros sites

  • 0
Parece que o TRichview so aceita BLOB Type Binary se colocar BLOB Type Text ele não aceita.
se voce tivesse dito isso logo no primeiro post a resposta seria outra

O TRichview funciona igual o Word, o não é texto puro, contem caracteres especiais junto com o texto

nesse caso a maneira de usar é atraves de um DBMemo, onde o conteudo do DBMemo é transferido para o TRichview

Aparentemente resolveu meu problema, mas você acha que terei problemas mais tarde fazendo assim?

se é assim que quer usar... sem problema

abraço

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...