CrearCursorActualizable para Paradox

87 views
Skip to first unread message

Moreno

unread,
May 8, 2013, 10:00:58 PM5/8/13
to publice...@googlegroups.com
Hola estoy usando por una remendacion del foro la rutina de Esparta CrearCursorActualizable.

La funcion abre correctamente, veo los datos y los modifico pero nunca me actualiza la tabla de paradox, imagino que me falta agregar un SET, saben si hay un set especial que use esta funcion?

Les dejo el codigo.

cDird    = ALLTRIM(Thisform.Text1.Value)
cFileE    = ALLTRIM(Thisform.Text2.Value)

&& Encabezados
IF Importar=.T.
    cCadCon = "CollatingSequence=ASCII;" ;
           +"DBQ=&cDird;";
           +"DefaultDir="+cFileE+";";
           +"Driver={Microsoft Paradox Driver (*.db )};";     
           +"DriverId=538;FIL=Paradox5.X;";
           +"MaxBufferSize=2048;";
           +"MaxScanRows=8;PageTimeout;";
           +"ReadOnly=False;pwd="           
    nH1 = SqlStringConnect(cCadCon,.t.)   
    If nH1 <= 0
        =Messagebox("Error en la conexión "+ALLTRIM(cFileE),16,"ERROR(x1)")
         base1=-1
         Importar=.F.
        Return .F.
    ELSE   
        m.lnHnd    = nh1
        m.lcSQL = "SELECT NUM_REG,TIP_DOC,CVE_DOC FROM "+cFileE+" WHERE NUMERO <> -987654321"
        m.llRetorno = (SQLEXEC(m.lnHnd, m.lcSQL, "Encabezado") > -1)
        IF m.llRetorno
          CrearCursorActualizable("Encabezado", "&cFileE" , "NUMERO")
          BROWSE
          GO TOP
          TABLEUPDATE(1, .T., "Encabezado")
          = SQLDisConnect(nH1)   
          RETURN .T.
        ELSE
            MESSAGEBOX("Error(x2)",0,"SQL:")
        ENDIF
    ENDIF
ENDIF

Nota : Lo que no hace es actualizar cFileE (FACTURAS.DB)

Víctor Hugo Espínola Domínguez

unread,
May 8, 2013, 10:27:13 PM5/8/13
to publicesvfoxpro
Hola Moreno

Enre "Select" y "From" no veo la clave primaria "Numero"

Saludos,
Víctor.

Moreno

unread,
May 8, 2013, 10:38:55 PM5/8/13
to publice...@googlegroups.com
El campo se llama num_reg,  es decir numero=num_reg perdon por el error al escribir

Víctor Hugo Espínola Domínguez

unread,
May 9, 2013, 12:28:05 AM5/9/13
to publicesvfoxpro
Hola Moreno

Acabo de probar con una tabla de Paradox el código que te envié anteriormente, y funciona ok. Si estás haciendo todo bien y no funciona entonces el problema está en otra parte, puede ser que tu tabla esté relacionada a alguna taba hija o padre y por eso la base de datos de Paradox no te permite modificar.

Mira este hilo del 7 de enero: Error al acceder a datos Paradox

Saludos,
Víctor.

Moreno

unread,
May 10, 2013, 12:56:06 AM5/10/13
to publice...@googlegroups.com
Gracias Victor por ayudarme.
 
Tengo un par de dudas, ya he estado probando con los ejemplos de la liga que me recomendaste pero no logro hacer que actualice la tabla, y haciendo caso a tus comentarios, si el caso es que dependa alguna tabla padre o hija, ¡¿entonces como las puedo relacionar? y la segunda también hablas que posiblemente el driver de paradox no sea el correcto, Sabes de algún portal en donde pueda bajar los drivers de paradox5?
 
de antemano muchas gracias

Víctor Hugo Espínola Domínguez

unread,
May 10, 2013, 1:55:20 AM5/10/13
to publicesvfoxpro
Hola Moreno

Fíjate si hay un archivo "FACTURAS.VAL", si es así copia "FACTURAS.DB" a otro directorio y prueba si puedes modificarlo. No te olvides de hacer un backup de los archivos originales!.

Si no tienes éxito, envíanos una copia de tu tabla. Hay otros compañeros en el foro que tienen experiencia en Paradox y Delphi.

Saludos,
Víctor.


Luis la Romana

unread,
May 10, 2013, 11:25:36 AM5/10/13
to publice...@googlegroups.com
Eso parece tablas de Aspel SAE 46 en Paradox. De seguro afecta lo que dice el compañero forero, la tabla secundaria es FA0TY1.DB y el número de control de registro num_reg es secuencial, por ejemplo si en Encabezado el num_reg es 100, el siguiente num_reg de la tabla detalle es 101, 102, etc dependiendo cuantos items tenga la factura. A la siguiente factura, continua lo que dejó el último registro de de ítems.

Esta rutina solo la puedes correr en Windows Vista/Win7 porque los drivers que veo utilizas son los correctos para Paradox. En WinxP los drivers de Paradox no son de la misma versión que usa SAE.


Moreno

unread,
May 20, 2013, 2:14:02 PM5/20/13
to publice...@googlegroups.com
Si son de SAE 4.60

lo intentare

Gracias.
Reply all
Reply to author
Forward
0 new messages