Page 2 of 2

Re: CAMPO AUTOINCREMENT - DBF (SOLUCIONADO )

Posted: Wed Oct 22, 2025 3:30 pm
by russimicro
Enrico... ya quedo ok..

Error mio, al usar un id (+) , cuando la tabla origen ya tenia un ID (numerico).. AL HACER EL APPEND FROM

Gracias

Re: CAMPO AUTOINCREMENT - DBF

Posted: Wed Oct 22, 2025 3:37 pm
by karinha

Code: Select all | Expand

// C:\FWH\SAMPLES\RUSSI.PRG

#include "FiveWin.ch"

FUNCTION Main()

   // CREARDBF()
   MsgRun( "AGUARDE... ABRINDO OS BANCOS DE DADOS.   ",                      ;
           "Por Favor, Espere Abertura. Pode Demorar.",                      ;
           { || WinExec( CREARDBF() ), 3 } )

RETURN NIL

FUNCTION CREARDBF()

   IF FILE( "RUSSIMIC.DBF" )

      DELETEFILE( "RUSSIMIC.DBF" )

      IF FILE( "RUSSIMIC.DBF" )

         ? "OOOPPPSSSS"

         QUIT // OOOPPPSSSS

      ENDIF

   ENDIF

   IF .NOT. FILE( "RUSSIMIC.DBF" )

      DbCreate( "RUSSIMIC.DBF", { { "ID",         "+",  04, 00 }, ;
                                  { "SERIE",      "C",  05, 00 }, ;
                                  { "NOME",       "C",  50, 00 }, ;
                                  { "ENDERECO",   "C",  50, 00 }, ;
                                  { "BAIRRO",     "C",  30, 00 }, ;
                                  { "CIDADE",     "C",  30, 00 }, ;
                                  { "UF",         "C",  02, 00 }, ;
                                  { "CEP",        "C",  09, 00 }, ;
                                  { "CGC",        "C",  14, 00 }, ;
                                  { "INSCREST",   "C",  18, 00 }, ;
                                  { "FONE",       "C",  30, 00 }, ;
                                  { "FONE2",      "C",  30, 00 }, ;
                                  { "CELULAR",    "C",  30, 00 }, ;
                                  { "EMAIL",      "C",  50, 00 }, ;
                                  { "EMAIL2",     "C",  50, 00 }, ;
                                  { "SITE",       "C",  50, 00 } } )

      DbCloseAll()

   ELSE

      ? "FILE NOT FOUND"

      QUIT

   ENDIF

   USE RUSSIMIC ALIAS RUSSSIMIC

   APPEND BLANK

   XBROWSE()

   DbCloseAll()

RETURN NIL

// FIN / END - [email protected]
Regards, saludos.

Re: CAMPO AUTOINCREMENT - DBF (SOLUCIONADO )

Posted: Thu Oct 23, 2025 9:44 am
by Enrico Maria Giordano
russimicro wrote: Wed Oct 22, 2025 3:30 pm Enrico... ya quedo ok..

Error mio, al usar un id (+) , cuando la tabla origen ya tenia un ID (numerico)

Gracias
Great!

Re: CAMPO AUTOINCREMENT - DBF [RESUELTO]

Posted: Thu Oct 23, 2025 1:34 pm
by russimicro
Buen dia....

Encontre que con xharbour.com o comercial... funciona bien, siempre y cuando NO se ejecute
el comando ZAP antes del APPEND BLANK o APPEND FROM....

Ante esto se require crear la tabla con la nueva estructura (CREATE TABLE) y NO hacer un MODI STRU (agregar el ID - AUTOINCREMENT ) + ZAP

Re: CAMPO AUTOINCREMENT - DBF [RESUELTO]

Posted: Thu Oct 23, 2025 2:43 pm
by Enrico Maria Giordano
I don't understand. Can you provide a reduced and self-contained sample showing the problem?

Re: CAMPO AUTOINCREMENT - DBF [RESUELTO]

Posted: Fri Oct 24, 2025 2:48 am
by russimicro
Enrico... aclaro es sobre xharbour.com y por el cual ya no hay soporte---

Solamente lo reporto a manera de "aviso"

ZAP : si activo el zap ... el autoincremento empieza en cero (0)

// ZAP : si desactivo el zap ... el autoincremento empieza en uno (1)

Nota : Esto NO sucede con harbour ni con xharbour.org

Gracias...

Ya sabiendo la causa en xharbour.com, ya pude resolver no haciendo modi stru + zap + append from, sino create table + append from


Gracias

//*****************


Enrico... I clarify this is about xharbour.com and there is no longer support for it.

Just reporting it as a "heads up"

ZAP: If I enable Zap... the auto-increment starts at zero (0)

// ZAP: If I disable Zap... the auto-increment starts at one (1)

Note: This does NOT happen with harbor or xharbour.org

Thanks...

Now that I know the cause for xharbour.com, I was able to resolve it by not doing mosi stru + zap + append from, but rather create table + append from.

Thanks



Ejp :

Code: Select all | Expand

#include "Fivewin.ch"

FUNCTION MAIN()

    DBCREATE( "PRUEBA.DBF", { { "TEST", "+", 4, 0 } } )

    USE PRUEBA EXCLUSIVE

//    ZAP   // INICIA EN UNO (1)
    ZAP   // INICIA EN CERO (0)

    APPEND BLANK
    APPEND BLANK

    CLOSE

    XBROWSER( "PRUEBA.DBF" )

    RETURN NIL

Re: CAMPO AUTOINCREMENT - DBF [RESUELTO]

Posted: Fri Oct 24, 2025 8:06 am
by Enrico Maria Giordano
Ok, understood, but I can't help you with xharbour.com, sorry. :-(

Re: CAMPO AUTOINCREMENT - DBF [RESUELTO]

Posted: Fri Oct 24, 2025 2:26 pm
by karinha
Prueba asi:

Code: Select all | Expand

// C:\FWH\SAMPLES\RUSSI2.PRG

#include "Fivewin.ch"

FUNCTION Main()

   DBCREATE( "PRUEBA.DBF", { { "TEST",   "+",  4, 0 }, ;
                             { "ADRESS", "C", 40, 0 } } )

   USE PRUEBA EXCLUSIVE NEW ALIAS PRUEBA

   DBZAP()

   BROWSE() // VACIO?

   DBAPPEND()

   RLOCK()

   REPLACE ADRESS WITH "RUSSIMICRO1"

   COMMIT
   UNLOCK

   DBAPPEND()

   RLOCK()

   REPLACE ADRESS WITH "RUSSIMICRO2"

   COMMIT
   UNLOCK

   GO TOP

   XBROWSE()

   CLOSE DATABASE

RETURN NIL
Regards, saludos.

Re: CAMPO AUTOINCREMENT - DBF [RESUELTO]

Posted: Fri Oct 24, 2025 11:32 pm
by russimicro
CON DBZAP()
TEST ADRESS
0 RUSSIMICRO1
1 RUSSIMICRO2

SIN DBZAP()

TEST ADRESS
1 RUSSIMICRO1
2 RUSSIMICRO2

Karinha...
La solucion es la que expuse... como se hace :

DBCREATE( "PRUEBA.DBF", { { "TEST", "+", 4, 0 }, ;
{ "ADRESS", "C", 40, 0 } } )

no se requiere el zap... y queda ok
Nota: esto es solo para xharbour comercial


Gracias

Re: CAMPO AUTOINCREMENT - DBF [RESUELTO]

Posted: Sat Oct 25, 2025 12:20 pm
by karinha
Código fuente gratuito de xHarbour Comercial:

Code: Select all | Expand

https://github.com/xHarbour-org/xharbour/tree/main/xHarbourBuilder
¿Dónde (enlace) descargaste el xHarbour comercial que estás usando? ¿Lo modificaste o es original?

Prueba este ejemplo e comente, pls.

Code: Select all | Expand

// C:\FWH\SAMPLES\RUSSI3.PRG

#include "Fivewin.ch"

FUNCTION Main()

   IF .NOT. FILE( "PRUEBA.DBF" ) // la id permanece en la memoria? Si. ???

      DBCREATE( "PRUEBA.DBF", { { "TEST",   "+",  4, 0 }, ;
                                { "ADRESS", "C", 40, 0 } } )

   ENDIF

   USE PRUEBA EXCLUSIVE NEW ALIAS PRUEBA
   GO TOP

   // DBZAP() -> Cual version de XHB Comercial?
   IF .NOT. EOF()

      WHILE( .NOT. EOF() )

         SYSREFRESH()

         IF EOF()
            EXIT
         ENDIF

         RLOCK()

         DELETE ALL

         DBPACK()

         COMMIT
         UNLOCK   

         SKIP

      ENDDO

      BROWSE() // VACIO? Yes!

   ENDIF

   DBAPPEND()

   RLOCK()

   REPLACE ADRESS WITH "RUSSIMICRO1"

   COMMIT
   UNLOCK

   DBAPPEND()

   RLOCK()

   REPLACE ADRESS WITH "RUSSIMICRO2"

   COMMIT
   UNLOCK

   GO TOP

   XBROWSE()

   CLOSE DATABASE

RETURN NIL
// FIN / END - [email protected]
Regards, saludos.

Re: CAMPO AUTOINCREMENT - DBF [RESUELTO]

Posted: Sat Oct 25, 2025 5:10 pm
by russimicro
Karinha...

Funciono correcto... dado que no USAS el zap---

El problema es en xharbour.... Enrico ya lo soluciono en la version .org (version de oct 22 2025)
pero para el comercial(licenciado) ya no hay soporte...

Ahora no si alguien esta manteniendo ese codigo con la version liberada....
pero como estoy en proceso de pasar a xharbour.org y harbour , puedo por ahora funcionar sin usar el zap en la version comercial

Gracias