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

Consulta Com Parâmetro! (RESOLVIDO)


Guest Japa

Pergunta

Bom pessoal eu consigo fazer uma consulta com parmetro mas somente com string, quando na tabela o campo possue um valor diferente de String da errado mas eu mudando a propriedade param para ftinteger. o código que eu faço é mais ou menos assim:

Query1.parambyname('cpf').asstring := edit1.text;

Como na tabela cpf não é alfa e sim number da um erra na hora da consulta, aguardo resposta dos amigos.

Link para o comentário
Compartilhar em outros sites

10 respostass a esta questão

Posts Recomendados

  • 0

Troca asstring por asinteger:

Query1.parambyname('cpf').asInteger := edit1.text;

ou então:

Query1.Params[0].AsInteger := edit1.text;

Depois posta ae pra dizer se deu certo ou errado, falou.

Link para o comentário
Compartilhar em outros sites

  • 0

Hi, hiiii, esqueci de logar...

Link para o comentário
Compartilhar em outros sites

  • 0
Troca asstring por asinteger:

Query1.parambyname('cpf').asInteger := edit1.text;

ou então:

Query1.Params[0].AsInteger := edit1.text;

Depois posta ae pra dizer se deu certo ou errado, falou.

Mas no object inspector, na propriedade Param, o que eu coloco?

Link para o comentário
Compartilhar em outros sites

  • 0

o legal seria converter a string que é digitada em texto tipo oh

cria uma variavel chamada varstring

varstring := FloatToString(Edit1.text) e transforma este numero digitado lá em texto na verdade nem precisa criar variavel nenhuma é so você criar assim

Query1.parambyname('cpf').asstring := FloatToString(edit1.text);

Simples não ??????

Abraços

Link para o comentário
Compartilhar em outros sites

  • 0

Bem Bolo até q essa é mais uma saída.

Respondendo a pergunta do Guest que eu creio q tenha sido o Japa:

Mas no object inspector, na propriedade Param, o que eu coloco? 

A resposta é bem simples: não coloca nada. Quando você usa esses comando (ParamByName() ou Params), na verdade ele tá preenchendo a propriedade do Object Inspector dinamicamente, ou seja, em tempo de execução.

Bem, qualquer coisa posta de novo ae. tongue.gif

Link para o comentário
Compartilhar em outros sites

  • 0

Não sei não, mas acho que vai dar erro:

Aqui:

Query1.parambyname('cpf').asstring := FloatToString(edit1.text);

edit1.text não é um float.

Aqui:

Query1.parambyname('cpf').asInteger := edit1.text;

edit1.text não é um integer.

Não seria assim:

Query1.parambyname('cpf').asInteger := StrToInt(edit1.text);

ou

Query1.parambyname('cpf').asFloat := StrToFloat(edit1.text);

Link para o comentário
Compartilhar em outros sites

  • 0

Eu to fazendo o seguinte:

No object inspector, propriedade Sql e digito o seguinte:

SELECT * FROM TABTESTE WHERE CPF LIKE :CPF

Depois no propriedade Params eu coloco ftInteger

ai na procedure do botão eu coloco:

QUERY1.ACTIVE := FALSE;

QUERY1.PARAMBYNAME('CPF').ASSINTEGER := STRTOINT(EDIT1.TEXT);

QUERY1.ACTIVE := TRUE;

É assim q eu sempre faço com campos String, nunca tinha precisado com integer.

Link para o comentário
Compartilhar em outros sites

  • 0

Não seria assim:

Query1.parambyname('cpf').asInteger := StrToInt(edit1.text);

ou

Query1.parambyname('cpf').asFloat := StrToFloat(edit1.text);

Realmente s3c, você tá certo, daquele jeito que eu coloquei iria dar erro.

O Guest, o problema é o seguinte: não é permitido fazer busca por aproximação em campos Integer. Faz o seguinte: tenta esse código aqui, é o que eu sempre uso e sempre dá certo:

No object inspector, propriedade Sql digita o seguinte:

SELECT * FROM TABTESTE

Não ponha nada na propriedade Params, preecha-a dinamicamente, através do código do botão.

Na procedure do botão coloque:

Query1.Close;

Query1.Sql.Text := 'Select * From TABTESTE ' +

'Where cpf =:cpfConsulta';

Query1.Params[0].AsInteger := StrToInt(Edit1.text);

Query.open;

Creio que agora dê certo. Mas dando ou não, posta o resultado ae, falou.

Link para o comentário
Compartilhar em outros sites

  • 0
Não seria assim:

Query1.parambyname('cpf').asInteger := StrToInt(edit1.text);

ou

Query1.parambyname('cpf').asFloat := StrToFloat(edit1.text);

Realmente s3c, você tá certo, daquele jeito que eu coloquei iria dar erro.

O Guest, o problema é o seguinte: não é permitido fazer busca por aproximação em campos Integer. Faz o seguinte: tenta esse código aqui, é o que eu sempre uso e sempre dá certo:

No object inspector, propriedade Sql digita o seguinte:

SELECT * FROM TABTESTE

Não ponha nada na propriedade Params, preecha-a dinamicamente, através do código do botão.

Na procedure do botão coloque:

Query1.Close;

Query1.Sql.Text := 'Select * From TABTESTE ' +

'Where cpf =:cpfConsulta';

Query1.Params[0].AsInteger := StrToInt(Edit1.text);

Query.open;

Creio que agora dê certo. Mas dando ou não, posta o resultado ae, falou.

FUNCIONOU PERFEITAMENTE.

OBRIGADO ARLON E A TODOS.

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novos posts.


  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...