Como prevenir el error de MySQL para accesos muy repetitivos

El cliente de MySQL  (libmysql.dll 5.x o 6.x)  puede dar error cuando se usa repetitivamente (tal como 1.000 veces) en el mismo proceso. Una forma de evitarlo es colocar la libreria LIBMYSQL dll en el código de inicialización del proyecto, antes de acceder a la base de datos.

sDllMySQL is string = "LibMySQL.DLL"
nInstanceMySQL is int = LoadDLL(sDllMySQL)

IF nInstanceMySQL=0 THEN
   EndProgram("Error al cargar LIBMYSQL", ErrorInfo())
END

Exportar fichero a Excel en WinDev 24

Con Visual FoxPro, para exportar un fichero o cursor a XLS se usa:

Con un fichero:

SELECT condiciones

COPY TO "c:\temp\xxx.xls" TYPE XL5

Con un cursor:

SELECT * FROM condiciones INTO CURSOR _CUR1

COPY TO "c:\temp\xxx.xls" TYPE XL5

Con Windev 24, para exportar un fichero u cursor a XLS o XLSX se usa:

Con un fichero:

HExportXLS(condiciones,"c:\temp\xxx.xlsx",hExpCreation)

Con un cursor (Data Source):

x is Data Source

HExecuteSQLQuery(x, MyConnection2,hQueryWithoutCorrection,"select * from condiciones")

HExportXLS(x,"c:\temp\xxx.xlsx",hExpCreation)

TEXT… ENDTEXT

En Foxpro tenemos la función TEXT …. ENDTEXT, cuyo uso facilita muchísimo la creación de expresiones con sustitución de variables (TEXTMERGE).
En Windev, a partir de la versión 22, su puede simular el comando usando como delimitar de variables la pareja: [% %] (similar en Fox: << >>).
Lo primero que hay que hacer, es activar esta característica en nuestro proyecto, ya que viene desactivada por defecto:

Luego, en nuestro código la usaremos así:

 sText is string
sHola, sAdios are strings
 sHola = "Hola"
sAdios= "Adiós"
 sText = [
  [%sHola%] Luis,
 Esteo es una prueba de macro sustitución de variables
  [%sAdios%] Luis 
]
 Info(sText)

Y el resultado de la ejecución:

Mover una Base de Datos MySQL entre servidores

MySQL utiliza la carpeta DATA para almacenar TODAS las bases de datos y lo más importante, la información de tablas, campos, índices, etc que la componen (ficheros: ibdata1, ib_logfile0, ib_logfile1 etc). Cuando se quiere mover la base de datos a otro servidor, hay que tener en cuenta la versión de MySQL de origen y destino.

Si la versión de MySQL es la misma:

· Localizar la carpeta “DATA” del servidor de origen y destino (se puede ver en la opción de STATUS del servidor, entrando con WorkBench) se muestra así:

· Parar el servicio de MySQL en ambos servidores, se puede hacer desde el programa de SERVICIOS de Windows o desde el administrador de tareas:

· Copiar TODOS los ficheros de la carpeta DATA del origen y sobrescribir la carpeta DATA del destino
· Iniciar el servicio en el destino y ¡Ya está!

Si la versión de MySQL es distinta:

· Hacer una DUMP de las bases de datos del origen. Se puede hacer una a una o usar el comando siguiente para crear un .SQL con todas las bases de datos

mysqldump -u -p –all-databases –opt > backup-completo.sql

Desde el CMD, Ejemplo: C:\Program Files\MySQL\MySQL Server 5.6\bin\>mysqldump -u root –p12345 –all-databases –opt > c:\temp\backup-completo.sql

· Arrancar el WorkBench en el servidor de destino e importar las bases de datos

Esperar a que termine el proceso y ya estarían migradas todas las bases de datos