La Web del Programador: Comunidad de Programadores
 
    Pregunta:  765 - PROBLEMAS CON EL DBU Y EL AÑO 2000
Autor:  Luis Garcia
Que tal, mi pregunta es la siguiente, quiero cambiar la longitud de mi campo fecha en la estructura de la base de datos, ya intente una respuesta que tienen colgada en las respuestas, pero esto no soluciona mi problema.
Yo quisiera saber que librerias tengo que cambiar para poder crear desde el DBU los campos fecha para 10 caracteres en lugar del standar que el mismo programa me da de 8 caracteres, como toda versión de clipper para DOS yo tengo los archivos fuentes del DBU, ya intente hacer los cambios y lo consegui, pero apenas entro al modo de edición solo me aparecen 8 caracteres 88/88/88 y yo lo necesito 10/10/2000, de lo contrario se va a colapsar toda mi información, alguien puede ayudarme y decirme que otras librerias, ademas del codigo fuente tengo que modificar para que mi dbu tome por default 10 y no 8 caracteres, mi equipo ya esta validado para soportar la fecha pero mi software aun no, la versión de clipper que tengo es la 5.3b, o existe una versión más nueva que soporte esto, espero puedan ayudarme. Gracias.

  Respuesta:  Cruz Alfredo Vásquez Ceja
ok. A lo que se refiere a el manejo de las fechas, es que en el codigo de tu programa pudes manejar dichas fechas para darle el formato que tu quieres, pero en realidad, la base de datos fisicamente, se graba solo con los dos digitos del año.

  Respuesta:  Luis Mendez
Creo que fui yo quien contesto algo acerca del año 2000, te fijaste como funcionan SET CENTURY ON y SET EPOCH TO 1960 ??
Te aclaro que desde sus origenes el formato DBF soporta fechas con años de 4 digitos.
Y si agregas al inicio de DBU.PRG la instruccion SET CENTURY ON, verás que las fechas aparecen con años de 4 digitos. Pero insisto, pueden aparecer en pantalla con 2 o 4, en el archivo y en variables de memoria, se guardan con 4 digitos.

  Respuesta:  OSCAR CALAGUA
Hola, este problema en clipper ya esta resuelto.

Lo importante no es como lo veas en el campo fecha sino como lo va a manejar el clipper.

Lo importante es indicar en el Clipper el SET CENTURY ON para que te maneje los 4 digitos del anno.

Hay una sentencia tambien que es la SET EPOCH que puedes utilizar para validar las fechas con mayor seguridad.

Prueba incluyendo esta sentencias en un programa de prueba y luego realiza ingresos y consultas, listados y veras los resultados.


  Respuesta:  Jorge Alejandro Espinosa
Probaste recompilando los fuentes del dbu agregando el comando SET CENTURY ON? Yo hace mucho que no trabajo con clipper pero estoy casi seguro que eso te solucionaria el problema.Saludos

  Respuesta:  Mauricio Fragoso
Utiliza las sentencias de set century on y set epoch to para realizar esto.

Set century on hace que las fechas aparezcan en el formato que quieres (aunque internamente siguen siendo de 8)

Con Set epoch to 1910 por ejemplo haces que las fechas 00 al 09 seas del año 2000, normalmente incluye en tu programa set epoch to year(date())-90

Tengo una utilería para "parchar" los códigos de clipper summer 87 , 5.2 y 5.3 así un codigo EXE será cambiado sin utilizar sus fuentes.