Array
(
)

Não consigo passar parametros! Da erro na conversão

Ricieri
   - 06 abr 2006

Pessoal, estou tentando passar os seguintes parametros:


Citação:
datamodule2.CC.Close;
datamodule2.CC.ParamByName(´idcli´).AsInteger := StrToInt(dbedit1.Text);
datamodule2.CC.ParamByName(´dtlancini´).AsDate := StrToDate(Edit1.Text);
datamodule2.CC.ParamByName(´dtlancfim´).AsDate := StrToDate(Edit2.Text);
datamodule2.CC.ParamByName(´tipopagto´).AsInteger := StrToInt(dbedit2.Text);
datamodule2.CC.Open;


Tenho o seguinte select:


Citação:
select a.vl_lancamento, d.descricao_pagto, data_lancamento, a.quantidade, b.id_cliente, b.nome_cli, c.descricao_item
from cc a,
clientes b,
item c,
tipo_pagto d
where
a.id_cliente = b.id_cliente and
a.id_item = c.id_item and
a.id_tipo_pagto = d.id_tipo_pagto and
a.id_cliente = :idcli and
data_lancamento >= :dtlancini and
data_lancamento <= :dtlancfim and
id_tipo_pagto = :tipopagto


Só que ele dá erro logo na segunda linha:


Citação:
datamodule2.CC.ParamByName(´idcli´).AsInteger := StrToInt(dbedit1.Text);


EconvertError with message ´´´ is not a valid integer value´.

O que tem de errado?


Osocram
   - 07 abr 2006

Amigo... provavelmente esse edit ae esta vazio.. enton o delphi non consegue converter vazio em integer :shock:

:wink:
Mas tem uma solucao simples
#Código

StrToIntDef(dbedit1.Text,0);


isso ae ele tenta converter.. mas se o valor non for valido ele t retorna um valor default q nesse caso eu deixei 0, mas vc pod deixar qq outro valor integer valido.
Ok??

Espero ter ajudado.


Ricieri
   - 07 abr 2006

Então cara, o pior é que não está vazio... eu fiz um teste, tipo, peguei e coloquei um edit simples, e mudei pra ele pegar do edit10.text
Ai funciona corretamente..
Tentei outro teste: antes de passar o parametro, joguei: edit10.text := dbedit1.text
Ai o edit10.text recebeu o valor normal, só que na hora de passar o parametro do edit10.text pro idcli ele deu o mesmo erro..


Rjun
   - 07 abr 2006

Qual o valor que você esta tentando converter?


Emerson
   - 07 abr 2006

por acaso o objeto onde você tem essa instrução sql e o que você está tentando atribuir os valores não é o mesmo, é?


Ricieri
   - 07 abr 2006

Estou tentando converter o valor 8...


Emerson, estou pegando o valor da mesma tabela sim.... não pode ser assim?