Campo Específico não insere no banco de dados
Estou desenvolvendo um programa, em que numa parte, no momento que a pessoa clica num botão. eu insiro alguns dados numa tabela. A maioria dos dados insere corretamente, mas o campo Valor (decimal - float no banco), não insere de maneira alguma.
Os valores estou pegando de dbedits. O dbedit Valor é (currency), mas eu conseguir pegar o valor float dele numa variável com AnsiString (ja teste com showmessage), mas este valor não insere no banco.
Abaixo o exemplo da minha rotina:
var valor1 : double;
Não coloquei o código completo, porque o "erro" só dá neste VALORREAL. Já tentei .VALUE, .AsCurrency, .ASString, outras maneiras com o edt_ValordaParcela.Text, mas nada deu certo pra este campo salvar no banco.
Se alguém puder me ajudar, desde já agradeço.
Os valores estou pegando de dbedits. O dbedit Valor é (currency), mas eu conseguir pegar o valor float dele numa variável com AnsiString (ja teste com showmessage), mas este valor não insere no banco.
Abaixo o exemplo da minha rotina:
var valor1 : double;
begin
valor1 := StrtoCurr( AnsiReplaceStr(edt_ValordaParcela.Text,CurrencyString,'') ); //aqui pega o valor float correto
with udmprincipal.cds_contas do
begin
Append;
cds_contas.FieldByName('FAVORECIDO').AsString := DBedit1.Text;
cds_contas.FieldByName('COD_PEDIDO').Value := DBText1.caption;
cds_contasapagar.FieldByName('VALORREAL').AsFloat := valor1; //este campo não salva no banco, mas os outros sim
Não coloquei o código completo, porque o "erro" só dá neste VALORREAL. Já tentei .VALUE, .AsCurrency, .ASString, outras maneiras com o edt_ValordaParcela.Text, mas nada deu certo pra este campo salvar no banco.
Se alguém puder me ajudar, desde já agradeço.
Rodrigo Barra
Curtidas 0
Respostas
Rodrigo Barra
11/10/2012
aqui tá cds_contasapagar.FieldByName('VALORREAL') contasapagar, e os outros contas, é só pq foi ctrl+c ctrl+v e esqueci de deletar este apagar. ('senão alguem pensa q o erro é isso')
GOSTEI 0
Thiago Schnell
11/10/2012
Insira manualmente um valor
cds_contasapagar.FieldByName('VALORREAL').AsFloat := 49.00;
se entrar vc deve rever o modo de como está tratando o valor1, estou vendo q vc esta usando ANSI isto é um problema
cds_contasapagar.FieldByName('VALORREAL').AsFloat := 49.00;
se entrar vc deve rever o modo de como está tratando o valor1, estou vendo q vc esta usando ANSI isto é um problema
GOSTEI 0
Rodrigo Barra
11/10/2012
Pior q nem atribuindo o valor manualmente não deu certo. Nem neste campo, nem em outros float, decimal do banco.
GOSTEI 0
Rodrigo Barra
11/10/2012
RESOLVIDO. É muito estranho, que fora do bloco with, coloquei a tabela em modo de edição, e coloquei como estava colocando acima e funcionou.
GOSTEI 0
Alisson Santos
11/10/2012
Estou encerrando o tópico, caso tenha mais alguma duvida nos informar.
GOSTEI 0