Firedac + Android

Delphi

26/07/2016

Boa tarde!

Não consigo solucionar esse problema já faz 3 dias, já pesquisei em todo lugar e nada, se alguém puder ajudar eu agradeço.
Tenho uma base de dados chamada 'cadastro.s3db' criada no sqlite com a seguinte estrutura:
tabela: Produtos
id: integer;
qtd: integer;
total: Decimal(15,2);

na minha aplicação firemonkey (android), utilizei FDConnection para se conectar, e para prover acesso aos dados utilizei uma FDQuery, persisti os campos nela... Ficando da seguinte forma:
id : TIntegerField
qtd: TIntegerField
total: TBCdField
(obs: criei todos clicando em add allfields, ja tentei utilizar outro tipo além do TBCDField, como o FMTBCD).

A conexão é feita com sucesso, mas sempre que dou open nessa query ou em qualquer outra query que contém campo decimal (somente com campo decimal ou real acontece isso) ocorre o erro:

FDQuery1: Type Mismatch for field 'total', expecting: BCD
actual: LargeInt;

Desde já obrigado!
Core

Core

Curtidas 0

Respostas

Luiz Menin

Luiz Menin

26/07/2016

Também já passei por erros semelhantes. Gerou grande dor de cabeça na época. Isso quando eu utilizava o Delphi XE5.
Tente alterar o formato dos campos numéricos para NUMERIC(15,2).
No momento utilizo o Delphi X10 Seattle nunca mais tive esse problema.
Aguardo feedback.
GOSTEI 0
Core

Core

26/07/2016

Olá, não deu certo,ainda está o mesmo erro!
GOSTEI 0
Natanael Ferreira

Natanael Ferreira

26/07/2016

Incompatibilidade entre o tipo de dados deste campo adicionado na FDQuery1 e o que está no banco.

Experimente remover os fields do FDQuery1 e adicioná-los novamente.
GOSTEI 0
POSTAR