Onde estou errando!

6 respostas
D

Bem estou tentando inserir dados em uma tabela através de um txt, só que está dando a menssagem de o o valor de inserção não é compatível, a minha tabela é essa.

DATA,ID_CLASSE,ID_BRICKS,ID_PRODUTO,VENDA_EM_VALOR,ID_EMPRESAS

O meu campo VENDA_EM_VALOR é um float, então quando peguei os dados do txt assim float VAL24 = rs.getFloat(“VALOR24”) ai mandei inserir.
“insert into DDD_FATO2_TESTE(DATA,ID_CLASSE,ID_BRICKS,ID_PRODUTO,VENDA_EM_VALOR,ID_EMPRESAS) VALUES(’”+meses[0]+"’,’"+CLASSE+"’,’"+BRICK+"’,’"+PRODUTO+"’,’"+VAL24+"’,’"+LAB+"’)";

Deu essa menssagem:
"A value is not compatible with the data type of its assignment target. Target name is “VENDA_EM_VALOR”. SQLSTATE=42821

A mesma coisa aconteceu para DOUBLE, só funcionou com VARCHAR!!

6 Respostas

Bani

Não coloque aspas ao redor de valores de campos numéricos.

D

Como assim, você diz que em ‘"+VAL24+"’ eu não devo colocar as aspas!!!??

Só que VAL24 é uma variável, ele via dar erro na compilação!!

Poderia ser mais claro!!

Rafael_Steil

Nao, ela disse para no SQL nao colocar aspas nos campos numericos.

Rafael

C

Você pode utilizar PreparedStatements, que são mais rápidos ( no caso de queries executadas constantemente) e você não terá esse problema :wink:

Bani

Realmente utilizar PreparedStatements oferece várias vantagens.
E explicando melhor minha resposta anterior, ao invés de

aspas simples - aspas duplas - mais - variável - mais - aspas duplas - aspas simples

deixe apenas

aspas duplas - mais - variável - mais - aspas duplas

D

Certinho, muito obrigado!!!

Criado 7 de fevereiro de 2003
Ultima resposta 10 de fev. de 2003
Respostas 6
Participantes 4