| Exibir mensagem anterior :: Exibir próxima mensagem |
| Autor |
Mensagem |
kakarlos Experiente

Registrado: Quinta-Feira, 30 de Setembro de 2010 Mensagens: 420
|
Enviada: Sáb Set 03, 2016 5:53 pm Assunto: filtrar sqlite |
|
|
pessoal estou usando o delphi xe7 com base sqlite e fiz uma conexao para mostrar em uma grid ate ai blz.. o problema eh quando tento filtrar por um edit.. estou usando o seguinte codigo para filtrar::
| Código: | sqlquery1.active:= false;
sqlquery1.SQL.Clear;
sqlquery1.Sql.Add( 'select * from tabperfil where perfil like'+QuotedStr(edit1.Text)+'' );
sqlquery1.Active:=true;
me retorna o seguinte erro "SQLQuery1:Type mismatch fr field 'id', expecting: Largeint actual: wideMemo"
alguem pode me ajudar |
Editado pela última vez por kakarlos em Qua Set 07, 2016 3:06 pm, num total de 3 vezes |
|
| Voltar ao Topo |
|
 |
natanbh1 Colaborador

Registrado: Terça-Feira, 15 de Março de 2011 Mensagens: 3093 Localização: Belo Horizonte - MG
|
Enviada: Seg Set 05, 2016 11:44 am Assunto: |
|
|
| Citação: | | SQLQuery1:Type mismatch fr field 'id', expecting: Largeint actual: wideMemo |
| Código: | | Tipo de dados incompatível. Esperando: LargeInt. Atual: WideMemo |
Como diz a mensagem de erro o tipo de dados deste campo está diferente no banco em relação aos fields do componente SqlQuery1.
Dê duplo clique no SQLQuery1 e remova os fields e adicione-os novamente. _________________ ''A persistência é o caminho para o êxito.''
Charlie Chaplin |
|
| Voltar ao Topo |
|
 |
kakarlos Experiente

Registrado: Quinta-Feira, 30 de Setembro de 2010 Mensagens: 420
|
Enviada: Seg Set 05, 2016 7:58 pm Assunto: |
|
|
| natanbh1 escreveu: | | Citação: | | SQLQuery1:Type mismatch fr field 'id', expecting: Largeint actual: wideMemo |
| Código: | | Tipo de dados incompatível. Esperando: LargeInt. Atual: WideMemo |
Como diz a mensagem de erro o tipo de dados deste campo está diferente no banco em relação aos fields do componente SqlQuery1.
Dê duplo clique no SQLQuery1 e remova os fields e adicione-os novamente. |
ola obrigado pela ajuda mas nao resolveu... alguma outra dica?? |
|
| Voltar ao Topo |
|
 |
leo_cj Colaborador

Registrado: Sábado, 26 de Março de 2011 Mensagens: 1335
|
Enviada: Ter Set 06, 2016 8:36 am Assunto: |
|
|
| Verifique qual o tipo do campo criado no SQLQuery e qual o tipo do campo no banco de dados |
|
| Voltar ao Topo |
|
 |
kakarlos Experiente

Registrado: Quinta-Feira, 30 de Setembro de 2010 Mensagens: 420
|
Enviada: Ter Set 06, 2016 12:25 pm Assunto: |
|
|
| leo_cj escreveu: | | Verifique qual o tipo do campo criado no SQLQuery e qual o tipo do campo no banco de dados |
Ok mas estou trabalhando com o campo "perfil" e não com o "id" |
|
| Voltar ao Topo |
|
 |
leo_cj Colaborador

Registrado: Sábado, 26 de Março de 2011 Mensagens: 1335
|
Enviada: Ter Set 06, 2016 1:36 pm Assunto: |
|
|
Como você faz um SELECT *, todos os campos da tabela são retornados no select, incluindo o ID, se você precisa apenas do campo perfil, pode utilizar assim:
| Código: |
sqlquery1.active:= false;
sqlquery1.SQL.Clear;
sqlquery1.Sql.Add( 'select perfil from tabperfil where perfil like'+QuotedStr(edit1.Text)+'' );
sqlquery1.Active:=true;
|
|
|
| Voltar ao Topo |
|
 |
kakarlos Experiente

Registrado: Quinta-Feira, 30 de Setembro de 2010 Mensagens: 420
|
Enviada: Ter Set 06, 2016 8:50 pm Assunto: |
|
|
| leo_cj escreveu: | Como você faz um SELECT *, todos os campos da tabela são retornados no select, incluindo o ID, se você precisa apenas do campo perfil, pode utilizar assim:
| Código: |
sqlquery1.active:= false;
sqlquery1.SQL.Clear;
sqlquery1.Sql.Add( 'select perfil from tabperfil where perfil like'+QuotedStr(edit1.Text)+'' );
sqlquery1.Active:=true;
|
|
faz sentido mas nao resolveu .. agora esta dando "Field "id" not found" |
|
| Voltar ao Topo |
|
 |
kakarlos Experiente

Registrado: Quinta-Feira, 30 de Setembro de 2010 Mensagens: 420
|
Enviada: Qua Set 07, 2016 1:24 pm Assunto: |
|
|
um teste que fiz foi com este codigo
| Código: | | SQLQuery1.Sql.Add( 'select *from tabperfil where perfil like "teste"' ); |
e ai sim funciona perfeitamente....
estranho. alguma ideia?? |
|
| Voltar ao Topo |
|
 |
kakarlos Experiente

Registrado: Quinta-Feira, 30 de Setembro de 2010 Mensagens: 420
|
Enviada: Qua Set 07, 2016 1:49 pm Assunto: |
|
|
CONSEGUI RESOLVER este problema
| Código: |
SQLQuery1.Sql.Add( 'select *from tabperfil where perfil like '+('"%'+edit1.Text)+'%"' );
|
bastou acrescentar " "...
Porem se eu escrever algo que nao contem no banco me retorna erro
o primeiro erro novamente...
estou achando que o erro eh motivado por que estou listando em uma stringgrid e acho que o erro eh relacionado por estar vazia quando nao encontra; |
|
| Voltar ao Topo |
|
 |
kakarlos Experiente

Registrado: Quinta-Feira, 30 de Setembro de 2010 Mensagens: 420
|
Enviada: Qua Set 07, 2016 5:21 pm Assunto: |
|
|
| realmente apos muito quebrar a cabeca consegui entender o porque... tenho uma stringgrid com um link na sqlquery e quando faço o filtro na sqlquery e me retorna erro a stringgrid me retorna erro.. deve ser por estar fazia.. pois some ate os titulos dela.. |
|
| Voltar ao Topo |
|
 |
|