Consulta sobre introduccion de datos de campos de entrada formateados en una base de datos

marcelo
14 de Enero del 2005
Necesitaria resolver el siguiente problema:

Tengo un campo formateado para ingresar precios, valores de la forma
50,25.
El tema es que cuando lo quiero cargar en la base de datos, el dato
queda registrado como entero, por ejemplo: si ingreso en el campo 10,5
en el campo de la tabla (Access) queda guardado 10. El campo de la tabla
es numerico, doble. Probe cargar manualmente en la tabla valores y de
esa forma si quedan bien registrados.
Por otra parte, tambien prove visualizar en la consola el valor ingresado
en el campo y me visualiza bien asi que... supongo que el problema debe
estar relacionado en la "forma" de pasar o "moldear" el valor.

Este es parte del codigo en cuestion:

JLabel etiquetaPrecio = new JLabel("Precio ($): ");
precio= new JFormattedTextField(NumberFormat.getNumberInstance());
precio.setColumns(5);

Luego, en un boton (guardar) hago lo siguiente:

Number value = (Number)precio.getValue();
float v = value.floatValue();
String variablePrecio = String.valueOf(v);

String cargaTabla= "INSERT INTO nombre_tabla (nombre_campo, nombre_campo...)"+
"VALUES('"+variablePrecio+"','"+nombre_campo.getText()+"...')";

En la instruccion SQL no tengo problema para otros campos, solamente con este tipo de campo "formateado"..

Gracias.

Lucas
14 de Enero del 2005
Al insertar el dato, lo pasas de float a String, puede que el access requera que el numero este en formato con comas en ve de puntos como separador decimal. Mira a ver el valor del float y del string y si aces lo acepta. Si no, utiliza un preparedstatement para pasarle el valor como float directamente a la query.