comprotamiento raro en campo de dbf

118 views
Skip to first unread message

Marcelo Lopez

unread,
Jan 6, 2026, 3:46:53 PM (4 days ago) Jan 6
to publicesvfoxpro
Hola a todos :
 Tengo una tabla dbf que pertenece a una base de datos dbc en visual fox pro 9 . Entre los campos definidos en esa dbf hay uno que se llama importe y es del tipo currency 8 . El problema que tengo es que al levantar los datos para armar un cursor me dice " el campo importe que no acepta valores null . Lo que me desconcierta es que filtro la tabla con la sentencia " brow for importe = null" y me trae un registro que en el campo importe tiene un valor = a 70000 . Que problema puede haber ?  
Intente escribir a mano en ese campo el valor y grabar con ctrl + w , pero me sigue filtrando por null .
desde ya gracias 

Zarlu

unread,
Jan 6, 2026, 4:11:23 PM (4 days ago) Jan 6
to Comunidad de Visual Foxpro en Español
Buenas tardes Marcelo!

Según parece se corrompió la tabla.
Ya intentaste reemplazar con REPLACE o UPDATE?

Suerte
zarlu
Chetumal, Quintana Roo, México

Marcelo Lopez

unread,
Jan 6, 2026, 7:49:48 PM (4 days ago) Jan 6
to publice...@googlegroups.com
gracias por la rta Zarlu : 

si : intente hacer update tabla set importe = o where importe = null y el error persiste 

--
Blog de la Comunidad Visual FoxPro en Español http://comunidadvfp.blogspot.com
---
Has recibido este mensaje porque estás suscrito al grupo "Comunidad de Visual Foxpro en Español" de Grupos de Google.
Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a publicesvfoxp...@googlegroups.com.
Para ver este debate, visita https://groups.google.com/d/msgid/publicesvfoxpro/3f96571e-e378-4192-99d8-176edfcb8722n%40googlegroups.com.

Zarlu

unread,
Jan 7, 2026, 8:28:49 AM (4 days ago) Jan 7
to Comunidad de Visual Foxpro en Español
Buenos días Marcelo!

Intenta así:
Replace importe WITH 0 FOR ISNULL(importe)

Suerte
zarlu
Chetumal, Quintana Roo, México


Marcelo Lopez

unread,
Jan 7, 2026, 9:14:25 AM (4 days ago) Jan 7
to publice...@googlegroups.com
hola ZArlu:
Veo que el problema no es solo con el campo importe .Cualquier campo de ese registro ( es el primero de la tabla )  lo fitro por  nombrecampo = null y me trae ese registro  ( si fitro por isnull(nombrecampo) no me trae anda , solo por == null me lo trae ).
Por otro lado probe de eliminar ese registro marcandolo a mano y con pack y luego si filtro por null me trae el primero ( el que antes era el registro 2 pasa a ser el que tiene valores null) . Por esto creo que el daño debe estar en el encabezado de la tabla . Probe de abrirla con cmrepair pero no me reporte ni me habilita ningun boton para corregir cant de registros u otra cosa . Gracias x tu ayuda 

integral

unread,
Jan 7, 2026, 9:45:12 AM (4 days ago) Jan 7
to Comunidad de Visual Foxpro en Español
Que tal amigos del Foro

Muy Buenos Días

Colega Marcelo, acabo de leer acerca del problema que comentas con una tabla DBF.

En ocasiones también e tenido algunos problemas con una o mas tablas DBF que están dentro de una base de datos DBC

La única solución que encontré fue la siguiente

Liberaba la tabla DBF de la DBC

Ej.-

FREE Table Consumos

luego utilizaba el siguiente comando

Alter Table Consumos

Te estoy respondiendo de memoria, en estos momentos no estoy con mi laptop...

Pero puedes investigar acerca de dichos comandos en la ayuda de VFP

Saludos,

Integral

Marcelo Lopez

unread,
Jan 7, 2026, 2:09:46 PM (3 days ago) Jan 7
to publice...@googlegroups.com
gracias a todos por la ayuda. EStoy intentando una a una las posibles soluciones y nada . Nosotros tenemos de cada tabal en una carpeta las tablas vacias con sus estructuras iniciales antes de que se empiecen a grabar registros . Lo que intente es hacer un append from a la tabla vacia de los registros de la tabla que contiene el regsitro con null y tampoco me funciono eso . Es muy raro el problema . Hace 15 años que programo en fox y no me habia pasado algo igual 

Zarlu

unread,
Jan 7, 2026, 3:47:52 PM (3 days ago) Jan 7
to Comunidad de Visual Foxpro en Español
Qué tal Marcelo!

Mira estás pruebas, creo que es la manera en que estás filtrando (null).

En la imagen:
1. Todos los registros de la tabla
2. Usando "null"
3. Usando "isnull"

En la tabla no hay registros nulos.
Será interesante indagar sobre el comportamiento de "null"

Suerte
zarlu
Chetumal, Quintana Roo, México
Sin título1.png

Marcelo Lopez

unread,
Jan 8, 2026, 8:18:06 AM (3 days ago) Jan 8
to publice...@googlegroups.com
gracias :
En realidad me termine "enredando" yo por usar = null en vez de isnull() .
No se porque lo hace fox , pero hice la prueba con otras tablas y si tenes un campo numerico , si usas el = null siempre te trae el primer registro de la tabla , tenga el valor que tenga , 


Reply all
Reply to author
Forward
0 new messages