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

Comando Sql No Firebird


rjcerri

Pergunta

Zquery1.SQL.Clear;

Zquery1.SQL.Add('Select * from clientes where aniver LIKE:aniv and estado LIKE:Mest and tipocli LIKE:Mtipo and descricao LIKE:Mdesc');

Zquery1.ParamByName('aniv').AsString:='%'+edit1.text+'%';

Zquery1.ParamByName('mest').AsString:='%'+edit3.text+'%';

Zquery1.ParamByName('mtipo').AsString:='%'+edit2.text+'%';

Zquery1.ParamByName('mtipo').AsString:='%'+edit2.text+'%';

Zquery1.ParamByName('mdesc').AsString:='%'+DBlookupComboBox2.text+'%';

Zquery1.open;

estou fazendo assim mas esta dando esse erro

303 aritmetic exception, numeric overflow, or string truncation, error code:-303 incompatible cloun/host variable datatype.

não tenho a menor ideia do que seja isso.

Link para o comentário
Compartilhar em outros sites

4 respostass a esta questão

Posts Recomendados

  • 0

rjcerri, acredito que seja porque não esteja definido o tipo de parâmetro a ser passado e deste modo a consulta pode não estar sendo enviada corretamente para o banco. Como você está fazendo esta consulta dinamicamente, faça um teste: defina então o tipo do parâmetro (DataType) de acordo com o tipo do respectivo campo na tabela (ftString)

Zquery1.SQL.Clear;

Zquery1.SQL.Add('Select * from clientes where aniver LIKE:aniv and estado LIKE:Mest and tipocli LIKE:Mtipo and descricao LIKE:Mdesc');

// *** não sei se funciona em run-time, então se houver erro, acho que vai ter que tentar

// *** adicionando em design-time

Zquery1.ParamByName('aniv').DataType := ftString;

Zquery1.ParamByName('mest').DataType := ftString;

Zquery1.ParamByName('mtipo').DataType := ftString;

Zquery1.ParamByName('mdesc').DataType := ftString;

// ****

Zquery1.ParamByName('aniv').AsString:='%'+edit1.text+'%';

Zquery1.ParamByName('mest').AsString:='%'+edit3.text+'%';

Zquery1.ParamByName('mtipo').AsString:='%'+edit2.text+'%';

Zquery1.ParamByName('mtipo').AsString:='%'+edit2.text+'%';

Zquery1.ParamByName('mdesc').AsString:='%'+DBlookupComboBox2.text+'%';

Zquery1.open;

[]s

Link para o comentário
Compartilhar em outros sites

  • 0

Zquery1.ParamByName('aniv').DataType:=ftstring;

Zquery1.ParamByName('mest').DataType:=ftstring;

Zquery1.ParamByName('mtipo').DataType:=ftstring;

Zquery1.ParamByName('mdesc').DataType:=ftstring;

Zquery1.ParamByName('aniv').AsString:='%'+edit1.text+'%';

Zquery1.ParamByName('mest').AsString:='%'+edit3.text+'%';

Zquery1.ParamByName('mtipo').AsString:='%'+edit2.text+'%';

Zquery1.ParamByName('mdesc').AsString:='%'+DBlookupComboBox2.text+'%';

Zquery1.open;

Obrigado amigo, fiz assim mas o erro continua.

Link para o comentário
Compartilhar em outros sites

  • 0

não sei se estou falando besteira, mas fiz um teste e parece que o maximo de caracteres é 20. será que algum parametro está dando o string truncation?

obrigado por me ajudar com a sintaxe do LIKE... ;)

Link para o comentário
Compartilhar em outros sites

  • 0

depois que o colega MACABUS chamou a atenção para o LIKE, dando uma olhada melhor, parece que você está utilizando o like com campo data quando coloca "...where aniver LIKE:aniv..."

O like só se aplica a textos(strings), então se quizer fazer uso com um campo data, provavelmente você terá que converter seu campo data para texto. Se for o caso, dê uma olhada em CAST (no Firebird). Seria algo mais ou menos assim: "...where CAST(aniver as varchar(10)) like :aniv...". não tenho como conferir agora.

[]s

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,3k
    • Posts
      652,3k
×
×
  • Criar Novo...