no coinciden los tipos de datos

945 views
Skip to first unread message

xeneize73

unread,
Jul 20, 2011, 12:02:08 PM7/20/11
to Comunidad de Visual Foxpro en Español
hola,

estoy realizando un formulario de inserccion de facturas, y me da
error no coinciden los tipos de datos, como puedo saber cuales son los
datos que no coinciden, gracias

Intel Man

unread,
Jul 20, 2011, 12:09:48 PM7/20/11
to publice...@googlegroups.com
Hola, lo que puedes hacer cuando te aparezca el error es suspender el programa y revisar tu dbf hasta que campo ha grabado y alli podras ver el campo que no ha grabado es el error.

O de lo contrario si usas replace ir borrando cada campo en el replace hasta encontrar el que da problema.

Saludos


> Date: Wed, 20 Jul 2011 09:02:08 -0700
> Subject: [vfp] no coinciden los tipos de datos
> From: alexen...@gmail.com
> To: publice...@googlegroups.com

Darío Castillejos

unread,
Jul 20, 2011, 12:12:39 PM7/20/11
to publice...@googlegroups.com

El error que te marca es muy claro, manda la sección de código donde te marca el error para ver en donde esta la falla.

 

Saludos.

 

 

-----Mensaje original-----
De: publice...@googlegroups.com [mailto:publice...@googlegroups.com] En nombre de xeneize73
Enviado el: miércoles, 20 de julio de 2011 11:02 a.m.
Para: Comunidad de Visual Foxpro en Español
Asunto: [vfp] no coinciden los tipos de datos

Henry Diaz

unread,
Jul 20, 2011, 12:19:29 PM7/20/11
to publice...@googlegroups.com
revisa que el tipo de dato que estes dando no sea distinto a donde lo estes depositando.
ejemplo:
Si tenes una variable de tipo decimal. Entiendase (2.50) y la vas a depositar en una
entera, te dara un error porque estas dando decimales donde solo se aceptan valores enteros.

Entonces como te dice Dario revisa en donde te da el error que no sea eso, de lo contrario si es lo que queres
hacer, debes hacer la conversion por medio de alguna funcion que se adapte a tus necesidades.



=====================================================================
Henry Díaz:           46928638
hnr...@gmail.com (Correo personal)
manag...@intelguasoft.com (Administrador de Web Site www.intelguasoft.com)
sup...@intelguasoft.com (Soporte en Desarrollo de Software)
sa...@intelguasoft.com (Venta de software a medida)
------------------------------------------------------------------------------------------------------------------------------------------
Usuario Ubuntu:

Usuario Linux:

------------------------------------------------------------------------------------------------------------------------------------------

Si he visto mas allá de mi nariz, es porque me he trabajado sobre Software Libre...

Albert Einstein
=====================================================================

xeneize73

unread,
Jul 20, 2011, 12:44:25 PM7/20/11
to Comunidad de Visual Foxpro en Español
utilizo append blank y se crea la nueva fila pero cuando suspendo el
programa en el error verifico que no hay ningun dato, solo la fila en
blanco.

On 20 jul, 18:12, Darío Castillejos

Darío Castillejos

unread,
Jul 20, 2011, 1:04:10 PM7/20/11
to publice...@googlegroups.com

Revisa el tipo de datos de tus variables, para ello utiliza la función VARTYPE( )

 

 

Saludos.

 

 

-----Mensaje original-----
De: publice...@googlegroups.com [mailto:publice...@googlegroups.com] En nombre de xeneize73

Enviado el: miércoles, 20 de julio de 2011 11:44 a.m.


Para: Comunidad de Visual Foxpro en Español

Asunto: [vfp] Re: no coinciden los tipos de datos

Adrian Fiandrino

unread,
Jul 20, 2011, 1:04:38 PM7/20/11
to Comunidad de Visual Foxpro en Español

Si utilizas GATHER, revisa el array de los datos a grabar (tienen que
ser del mismo tipo cada campo de la DB y del array).

Si utilizas REPLACE, chequea cada variable, que los datos correspondan
con el tipo y que no haya una variable nula.

Si el registro esta en blanco, checa el primer campo que mandas a
grabar.

Saludos.

Irlandes 1960

unread,
Jul 20, 2011, 3:22:06 PM7/20/11
to publice...@googlegroups.com
Estimado Bostero, no es recomendable usar append blank, fuente oculta de innumerables padecimientos para la grey programadora, introducida en el excelso VFP en las oscuras noches pre visuales por los acolitos de belcebú
Arrepentios Pecador, y prueba de armar la logica usando Insert.
Tu puedes, Hermano, TU PUEDES!!!
 
Yo en lo personal suelo trabajar con una tabla auxiliar identica a la que luego voy a actualizar, creada con algo asi como   sele tablareal.*  from  tablareal  into  ....
variando el into entre cursores modificables o dbf en carpeta temporal (cada una tiene su pro y su contra, pero eso es otro tema)
Supone que creaste con el sele anterior una tabla llamada auxiliar, y sobre el cual armaste todos tus datos, cuando vas a insertar en la tabla real, podes usar algo asi como:
 
sele auxiliar 
scatter to lacampos
sele tablareal
insert into tablareal from array lacampos
 
Como el auxiliar fue creado desde un select completo de la tablareal, su equivalencia es perfecta y se mantiene aun cuando se cambie la estructura de la tabla real.
Ademas permite un trabajo muy comodo con los objetos del form, usando la propiedad rowsource de cada objeto contra el campo de la tabla auxiliar.

xeneize73

unread,
Jul 21, 2011, 5:45:50 AM7/21/11
to Comunidad de Visual Foxpro en Español
muchas gracias y que buena explicacion irlandes, voy a probar con
insert into, no queria usarlo porque ya lo tenia con el append blank,
pero me convenciste, un abrazo

xeneize73

unread,
Jul 21, 2011, 11:13:50 AM7/21/11
to Comunidad de Visual Foxpro en Español
Hice lo que me has dicho y seguro lo hice mal pero lo ire arreglando.
Me aparece un error que dice no se encuentra la variable dd, este
error porque puede ser, gracias

On 20 jul, 21:22, Irlandes 1960 <irlandes1...@gmail.com> wrote:

Mario Alfredo

unread,
Jul 29, 2011, 5:22:30 PM7/29/11
to Comunidad de Visual Foxpro en Español
no se encuentra la variable dd es porque necesitas hacerla publica
quizas grabas referente con el dia

si queres hacerlo de esta forma
SELECT TablaNoLibre
gnFieldcount = AFIELDS(gaMyArray)
CREATE CURSOR TablaLibre FROM ARRAY gaMyArray

CREATE CURSOR Prueba (ID n(1),Nombre C(10),Fecha D)

* Pasamos a un arreglo la estructura del cursor
AFIELDS(laPruebra, “Prueba”)

* Creamos un cursor en base al arreglo
CREATE CURSOR hPrueba FROM ARRAY laPruebra
Reply all
Reply to author
Forward
0 new messages