Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Error usando tipo Variant (https://www.clubdelphi.com/foros/showthread.php?t=7091)

silviodp 03-02-2004 14:10:28

Error usando tipo Variant
 
Hola, en mi programa estoy usando vables. tipo variant para asignar campos de una Tabla a las mismas, luego asigno el valor de éstas a varios Labels, pero tengo problemas con el campo DNI y NºCUIT ya que cuando quiero asignar el valor de las vbles. a los respectivos labels me arroja el siguiente error:
"Project Project1.exe raised exception class EVariantError with message 'Invalid variant type conversion', ..."
Este error lo empezó a dar cuando tuve que agregar el campo DNI a mi tabla ya que lo necesitaba, luego también me lo comenzó a hacer con NªCUIT, que está definido igual que el anterior.
Que puedo estar haciendo mal??
Gracias.

Lepe 03-02-2004 14:36:14

Hola compañero de fatigas ;)

Estas haciendo la pregunta erróneamente :p

Dime realmente, si no sabes nada de lo que hace otra persona y lees ese mensaje, podrías responder algo así como ...: "El fallo lo tienes en la linea de codigo 128 " :(

No está de más leerse la guia de estilo, te da muchas ideas de como formular una pregunta.

Si deseas que seamos más explicitos, por favor, dinos:
- Tipo de tablas (paradox, dbase,....)
- pon el codigo donde haces la asignación a los labels, para ver que tipo de conversion haces.

Saludos

roman 03-02-2004 17:02:25

Cita:

Empezado por silviodp
Que puedo estar haciendo mal??

Posiblemente algunos registros tienen valores null en esos campos.

// Saludos

silviodp 03-02-2004 20:15:06

Error usando tipo Variant
 
Lepe:
te comento que formule la pregunta lo mejor que pude es cierto por ahi no aclare cosas importantes sin darme cuenta, igual sin estas aclaraciones hubo alguien que me respondio.
Si tenes ganas de responderme la Tabla es Paradox 7, sino no hay drama.

uhilari 03-02-2004 22:55:10

Hola amigo Forista.

La verdad seria bueno que pusieras algo de codigo para poder ayudarte con mas exactitud. Pero me parece que tu problema esta al querer convertir tus datos de Variant a String no es asi?

Entonces te recomendaria que utilices la funcion VarToStr que transforma una dato Variant a String sin importar el tipo interno, ya sea fecha, entero o real no importa.

Como te repito seria mejor un poco de código para ser mas preciso. De todas formas espero haberte ayudado algo.

Lepe 04-02-2004 11:16:15

Silviodp, antes de nada te pido disculpas si te he molestado, no era mi intención. Sinceramente, la respuesta que yo te di, me la podrían haber dado a mi en otras ocasiones jejejee.

En cuanto a tu problema, no creo que se trate de una simple traduccion de ingles a español, "message 'Invalid variant type conversion'", por eso pedía un poco de código.

Considero que la pregunta es muy amplia, por tanto solo podemos dar soluciones generales :(

en ocasiones he usado algo como esto:
Código:

var v:Variant;
begin
v := tabla.lookup('idcliente', '32', 'idcliente');
if vartype(v) in [varnull] then
  showmessage('no existe en la base de datos el cliente con codigo 32')
else
  showmessage('SI existe en la base de datos el cliente con codigo 32')
end;

aqui hay una serie de constantes que pueden ser usadas:
Código:

const
  varEmpty    = $0000;
  varNull    = $0001;
  varSmallint = $0002;
  varInteger  = $0003;
  varSingle  = $0004;
  varDouble  = $0005;
  varCurrency = $0006;
  varDate    = $0007;
  varOleStr  = $0008;
  varDispatch = $0009;
  varError    = $000A;
  varBoolean  = $000B;
  varVariant  = $000C;
  varUnknown  = $000D;
  varShortInt = $0010;
  varByte    = $0011;
  varWord    = $0012;
  varLongWord = $0013;
  varInt64    = $0014;
  varStrArg  = $0048;
  varString  = $0100;
  varAny      = $0101;
  varTypeMask = $0FFF;
  varArray    = $2000;
  varByRef    = $4000;

La verdad, no sé si puede servirte de algo, ese ejemplo es copiado de la ayuda de delphi, igual te interesa buscar en la ayuda sobre funciones con tipos Variants.

Espero poder ayudarte más en otras ocasiones. Saludos


La franja horaria es GMT +2. Ahora son las 17:00:30.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi