Delphi - problema al intentar guardar un valor integer

 
Vista:

problema al intentar guardar un valor integer

Publicado por Carlos (4 intervenciones) el 31/03/2014 17:06:20
Hola a todos


Espero que alguien pueda ayudarme a resolver un problema aparentemente sencillo. Accedo a una base de datos Mysql en un servidor remoto mediante ODBC, hasta aqui no hay problema. El problema surge cuando le paso un valor mediante este código a un campo de tipo integer que recibe un valor del mismo tipo y da un error 'Invalid variant type conversion'

//poner tabla en modo insertar
dm.Tsubfamilias.Append;
//asignar valores
dm.Tsubfamilias.FieldByName('descripcion').Value:= Esubfamilia.Text;
dm.Tsubfamiliascod_tipo.Value:= dm.Tfamiliascod_tipo.Value;
dm.Tsubfamilias.Post;
Fnuevasubfamilia.Close;

No entiendo como siendo ambos del mismo tipo da un error.

Agradezco de antemano vuestra ayuda.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil

problema al intentar guardar un valor integer

Publicado por Pico (18 intervenciones) el 31/03/2014 17:33:41
No te da un error por un valor de tipo integer, sino un variant. Si a un variant, aunque sea integer, le pasas un integer te dará error.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

problema al intentar guardar un valor integer

Publicado por Carlos (4 intervenciones) el 31/03/2014 19:21:50
Gracias por tu pronta respuesta. Eso es precisamente lo que no entiendo, los dos campos estan definidos en la BD (Mysql) como INT en ningún momento los he redefinido ni como variant ni de ninguna otra clase y por eso no se donde estoy pasando un valor INT a un Variant .
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

problema al intentar guardar un valor integer

Publicado por Pico (18 intervenciones) el 31/03/2014 21:17:34
Sí, pero puede que alguna función de las que usas para pasar los valores espere un variant y no un integer, no que la base de datos no acepte un integer.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

problema al intentar guardar un valor integer

Publicado por Carlos (4 intervenciones) el 31/03/2014 21:45:20
dm.Tsubfamiliascod_tipo.Value:= dm.Tfamiliascod_tipo.Value;

esta es la línea que provoca el error, no uso ninguna función (que yo sepa) para pasar el valor. También he probado a hacerlo con

dm.tsubfamilias.FieldbyName('cod_tipo').Value:= dm.tfamilias.FieldbyName('cod_tipo').Value;

y me da el mismo error.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

problema al intentar guardar un valor integer

Publicado por Carlos (4 intervenciones) el 01/04/2014 19:09:10
Ya he resuelto el problema, lo comento por si puede servir de ayuda a alguien. Solo ha sido necesario cambiar el nombre del campo 'cod_tipo' por 'codtipo' Parece que los guiones en los campos crean conflictos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de xve

problema al intentar guardar un valor integer

Publicado por xve (11 intervenciones) el 02/04/2014 06:59:26
Gracias por compartirlo Carlos!!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar