Skip to content

Instantly share code, notes, and snippets.

@rauljrz
Last active November 11, 2018 17:01
Show Gist options
  • Save rauljrz/54a14a5a1339e742fc04cf0730e5e56d to your computer and use it in GitHub Desktop.
Save rauljrz/54a14a5a1339e742fc04cf0730e5e56d to your computer and use it in GitHub Desktop.
Ejemplo de actualizacion de varios registros en mysql Remoto
*[ http://rinconfox.com ]
*[ https://chat.whatsapp.com/579n13MRO2j7eiuw4xcVOC ]
*[ [email protected] ]
lcServer ="vps-1310086-x.dattaweb.com"
lcUserName="ztestfox"
lcPassword="Password2"
lcDataBase="ztestfox"
lcStringConnect = "DRIVER={MySQL ODBC 3.51 Driver};" ;
+"SERVER=" +lcServer +";" ;
+"UID=" +lcUserName+";" ;
+"PWD=" +lcPassword+";" ;
+"DATABASE="+lcDataBase+";" ;
+"OPTIONS=131329;"
SQLSETPROP(0,"DispLogin" , 3 )
USE IN SELECT("crsContactos") &&Si existe el cursor lo cierro
CLEAR
? ' Establezco la conexion remota: '+TRANSFORM(DATETIME())
TRY
lnHandle = SQLSTRINGCONNECT(lcStringConnect)
IF lnHandle<=0 THEN
THROW 'Error en la conexion'
ENDIF
*- Busco todos los contactos que son del pais Angola de una tabla de 2200 Registros remotos
TEXT TO lcStmt TEXTMERGE PRETEXT 15 NOSHOW
SELECT id, nombre, empresa, ciudad
FROM contactos
WHERE pais='Angola';
ENDTEXT
ldIni = DATETIME()
IF SQLEXEC(lnHandle, lcStmt, 'crsContactos')<=0 THEN
THROW 'Error en el select'
ENDIF
ldEnd = DATETIME()
? ' Inicio de la Consulta: '+TRANSFORM(ldIni)
? ' Final de la Consulta.: '+TRANSFORM(ldEnd)
?
? ' Se encontró '+TRANSFORM(RECCOUNT('crsContactos'))+' Registros de 2200'
SELECT crsContactos
BROWSE NOWAIT
*--- Modifico el curso para actualizar en mysql
REPLACE ALL ciudad WITH ALLTRIM(ciudad)+' MODIFICADO'
*--- Ahora lo actualizo en MySQL
SCAN
lcCiudad = crsContactos.Ciudad
lnID = crsContactos.id
lcStmt = ''
TEXT TO lcStmt TEXTMERGE PRETEXT 15 NOSHOW
UPDATE contactos
SET ciudad = ?lcCiudad
WHERE id = ?lnID
ENDTEXT
IF SQLEXEC(lnHandle, lcStmt, 'crsContactos')<=0 THEN
THROW 'Error en el update'
ENDIF
ENDSCAN
CATCH TO loException
? '!------------------------!'
? ' -Holaa, algo salio mal!! '
? ' Valor del handle: '+ TRANSFORM(lnHandle)
=AERROR(laError)
? TRANSFORM(laError[1]) + CHR(13);
+TRANSFORM(laError[2]) + CHR(13);
+TRANSFORM(laError[3]) + CHR(13);
+TRANSFORM(laError[4]) + CHR(13);
+TRANSFORM(laError[5]) + CHR(13)
FINALLY
IF lnHandle>0 THEN
SQLDISCONNECT(lnHandle)
ENDIF
ENDTRY
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment