viernes, 8 de mayo de 2020

Error de conexión se presenta al conectarse por primera vez al motor de MySQL,

Tip copiado a Francisco Carabez

Existen casos en que el error de conexión se presenta al conectarse por primera vez al motor de MySQL, MSSQL, etc

Otras veces se presentan errores hasta que se realiza una petición de consulta al motor de base de datos.

El problema es que el Acceso Nativo NO encuentra las librerías o DLL de motor de base de datos; o cuando el mismo motor no encuentra un archivo que requiere para atender la petición del QUERY o SP.

La solución depende mucho del Motor de SQL y del caso en particular, pero a manera de guía podríamos hacer estos pasos para solucionar el problema:

Comprobar que Windev, Webdev o Windev Mobile cuente con las últimas actualizaciones.
Bajar la última versión del Acceso Nativo del SQL si es el caso o instalar la última versión del HFSQL
Agregar a la ruta de búsqueda de windows (VARIABLES DEL SISTEMA -> PATH) la ruta de los binarios del Motor de SQL
Si no se desea modificar la Variable del Sistema, se deberán copiar las DLL del motor de SQL en el directorio de instalación del Acceso Nativo.

Concatenar cadenas con el operador [ ]

El operador [ y el operador ] se utiliza opcionalmente para concatenar cadenas. El separador no se concatena si la cadena fuente es una cadena vacía ("") o si la cadena fuente termina con el separador.

Veamos un ejemplo para Rellenar una cadena con elementos separados por los caracteres de CR (retorno de carro). El separador no se concatena si la cadena de origen es una cadena vacía:

sCsvTexto is string
FOR EACH BD_Cliente
        sCsvTexto += [CR] + BD_Cliente.Nombre + TAB + BD_Cliente.Correo
END

Código sin los operadores:

sCsvTexto is string
FOR EACH BD_Cliente
        IF sCsvTexto = "" THEN
                sCsvTexto = BD_Cliente.Nombre + TAB + BD_Cliente.Correo
        ELSE
                sCsvTexto += CR + BD_Cliente.Nombre + TAB + BD_Cliente.Correo
        END
END

Entrada asistida en un control de edición es sencillo

Copiado (rescatado) del blog de mi tocayo Francisco Carabez

Visión general

El principio de entrada asistida en un control de edición es sencillo: cuando el usuario comienza a escribir un control de edición, una lista se expande automáticamente debajo del control, proponiendo los valores que comienzan con el texto actualmente escrito.
La entrada asistida se puede implementar desde el editor o se puede personalizar mediante programación.

Principio
WINDEV, WINDEV Mobile y WEBDEV proponen varios tipos de entrada asistida:
Entrada asistida "en memoria": el control de edición no está vinculado a un elemento que encontró un archivo de datos. La entrada automática se realiza a partir de una lista de datos suministrados por programación ( AssistedInputAdd ). Los datos de la lista se muestran de acuerdo con la entrada.
Entrada asistida de "exploración": el control de edición está vinculado a un elemento encontrado en un archivo de datos o en una consulta. Los datos de la lista se muestran de acuerdo con la entrada.
Entrada asistida programada: la entrada asistida se realiza a partir de una lista personalizada de datos. La visualización de datos en la lista de acuerdo con la entrada es personalizada.

Entrada asistida "en memoria"
¿Cómo?
Para implementar la entrada asistida "en memoria":

  1. Use AssistedInputAdd para agregar los elementos tomados en cuenta por la entrada asistida.
  2. Si es necesario, use AssistedInputConfigure para configurar las características de la entrada asistida: filtro, apertura de lista, número de caracteres escritos antes de abrir la lista...

Ejemplos:
Windows:

// Code for window initialization end
AssistedInputConfigure(EDT_Find, aiMinSize, 3)
AssistedInputConfigure(EDT_Find, aiFilter, filterContains)
FOR EACH STRING sTitle OF gsPhotoTitles SEPARATED BY CR
AssistedInputAdd(EDT_Find, sTitle)
END

Página:

// Load code of the page
AssistedInputConfigure(EDT_Find, aiMinSize, 3)
AssistedInputConfigure(EDT_Find, aiFilter, filterContains)
FOR EACH STRING sTitle OF gsPhotoTitles SEPARATED BY CR
AssistedInputAdd(EDT_Find, sTitle)
END

En caso de que no se cuenta con la contraseña del HFSQL Control Center:

Copiado del blog de mi amigo Francisco Carabez

En caso de que no se cuenta con la contraseña del HFSQL Control Center:

  1. Respalda o copia el directorio donde están los datos.
  2. Desinstala el servidor HFSQL completamente
  3. Instala nuevamente el servidor HFSQL
  4. Importa los datos respaldados del primer paso.

Es el único método que conozco.

Try catch end

 // -------------------------------------------------- // Procedure principal que executa uma query com tratamento de exceção // -----------...