PC SOFT

AYUDA EN LÍNEA
DE WINDEV, WEBDEV Y WINDEV MOBILE

Este contenido proviene de una traducción automática.. Haga clic aquí para ver la versión original en inglés.
  • Utilizar una cadena de caracteres para el proveedor OLE DB
  • Si se produce un error, no se conserva la descripción de la conexión
  • Se abren dos conexiones en el servidor
  • Validez de la conexión
  • Pseudo-conexión a una base de datos HFSQL Classic
WINDEV
WindowsLinuxUniversal Windows 10 AppJavaReportes y ConsultasCódigo de Usuario (UMC)
WEBDEV
WindowsLinuxPHPWEBDEV - Código Navegador
WINDEV Mobile
AndroidWidget Android iPhone/iPadApple WatchUniversal Windows 10 AppWindows Mobile
Otros
Procedimientos almacenados
Abre una conexión a una base de datos Cliente/Servidor específica para gestionar los archivos del groupware de usuario en modo Cliente/Servidor.. La conexión permanece abierta hasta el final de la aplicación.
La función gpwOpenConnection permite definir y abrir una conexión para los archivos de datos del groupware usuario. Para utilizar la misma conexión para todos los ficheros de datos de la aplicación, basta con utilizar HChangeConnection. A continuación, gpwOpen se utiliza para especificar la ubicación de los archivos de datos para la gestión de derechos, así como la ubicación de los archivos de datos para la identificación de los usuarios.
Observación: A partir de la versión 19, HFSQL es el nuevo nombre de HyperFileSQL.
Ejemplo
// Use user groupware files with a MySQL database
IF gpwOpenConnection("gpwCt", "Test", "PasswordMySQL", ...
"Apollon_server", "TEST", hNativeAccessMySQL) = False THEN
Error(ErrorInfo())
ELSE
// The data files of user groupware
// are automatically created
// if the user has rights on MySQL.
nRes is int = gpwOpen()
// If the login failed
IF nRes <> gpwOk THEN
SWITCH nRes
CASE gpwError:
Error("Error at initialization.", ErrorInfo())
CASE gpwUnknownUser:
Error("Unknown user.")
CASE gpwInvalidPassword:
Error("Invalid password")
END
END
// Use the same connection for all data files
HChangeConnection("*", "gpwCt")
Trace(HNbRec(CEDEX))
END
// Change the password of user groupware data files
// by programming
// Example with GPWUSER
gpwInitAnalysis()
GPWUSER is Data Source
CNT_GPWu_HFCS is Connection
sPasswordGPWu is string = "PCSGPW2001"
 
// Connection parameters
CNT_GPWu_HFCS..Provider = hAccessHFClientServer
CNT_GPWu_HFCS..User = "UserHFServer"
CNT_GPWu_HFCS..Password = "PasswordHFServer"
CNT_GPWu_HFCS..Server = "HFServer"
CNT_GPWu_HFCS..Database = "GPWu"
CNT_GPWu_HFCS..CryptMethod = hCryptNo
 
// Open the connection
gpwOpenConnection(CNT_GPWu_HFCS)
HChangeConnection(GPWUSER,CNT_GPWu_HFCS)
HPass(GPWUSER, sPasswordGPWu)
HCreationIfNotFound(GPWUSER)
HChangePassword(GPWUSER, "TEST")
 
CASE ERROR:
Error(HErrorInfo() + CR + ErrorInfo())
Sintaxis

Definición y apertura de una conexión Ocultar los detalles

<Result> = gpwOpenConnection(<Connection name> , <User name> [, <Password>] , <Data source> [, <Database>] , <OLE DB provider or Native Connector> [, <Access> [, <Extended information>]] , <Additional options>)
<Result>: booleano
  • True si se realizó la operación,
  • False si se produce un problema. La función HErrorInfo permite identificar el error.
La apertura real de la conexión no se realiza con la función gpwOpenConnection. La función puede devolver True incluso si los valores pasados como parámetro son incorrectos.

Utilice gpwOpen para especificar la ubicación de los archivos de datos para la gestión de los derechos, así como la ubicación de los archivos de datos para la identificación de los usuarios. Los directorios deben especificarse en relación con el directorio del servidor.
<Connection name>: Cadena de caracteres (con comillas)
Nombre de la nueva conexión a definir y abrir. Este nombre no debe ser usado por otra conexión (definida en el análisis, o con HOpenConnection o HDescribeConnection).
<User name>: Cadena de caracteres (con comillas)
Nombre del usuario que se conecta a la base de datos Cliente/Servidor. Este parámetro es devuelto por la propiedad ..CtUserName.
<Password>: Cadena de caracteres opcional (con comillas)
Contraseña definida para la conexión a la base de datos Cliente/Servidor (si existe esta contraseña). Si no se requiere una contraseña, utilice una cadena vacía ("") o la palabra clave NULL.
<Data source>: Cadena de caracteres (con comillas)
Ruta completa de la fuente de datos. La conexión se creará y abrirá para esta fuente de datos. Este parámetro es devuelto por la propiedad ..CtDatabase.
<Database>: Cadena de caracteres opcional (con comillas)
Nombre de la base de datos que se utilizará en la fuente de datos. Si no se requiere este parámetro, utilice una cadena vacía (""). Este parámetro es devuelto por la propiedad ..CtInitialCatalog.
<OLE DB provider or Native Connector>: Cadena o constante de caracteres
  • Nombre del proveedor OLE DB utilizado. Para obtener fácilmente la cadena a utilizar, seleccione la opción "Conexión" en el editor de análisis (ver Notas).

    o
  • una de las siguientes constantes:
    hAccessHF7Seudoconexión a una base de datos HFSQL Classic (de un solo usuario o multiusuario)
    hAccessHFClientServerConexión a una base HFSQL Client/Server
    hNativeAccessAS400Acceso/conector nativo AS/400 (módulo opcional)
    hNativeAccessDB2Acceso/conector nativo DB2 (módulo opcional)
    hNativeAccessInformixAcceso/Conector de Informix nativo (módulo opcional)
    hNativeAccessMySQLAcceso/conector nativo de MySQL (módulo opcional)
    hNativeAccessOracleAcceso/conector nativo de Oracle (módulo opcional)
    hNativeAccessPostgreSQLAcceso/conector PostgreSQL nativo (módulo opcional)
    hNativeAccessProgressAcceso a Native Progress (módulo opcional)
    hNativeAccessSQLServerAcceso/conector del servidor SQL nativo (módulo opcional)
    hNativeAccessSybaseConector/acceso a la base nativa Sybase (módulo opcional)
    hNativeAccessXBaseNativo xBase Acceso/Conector
    hODBCProveedor OLE DB para ODBC.
    Permite acceder a una fuente ODBC declarada en las fuentes de datos ODBC de Windows.
    hOledbAccess97Proveedor OLE DB para Access 97
    hOledbAccess2000Proveedor OLE DB para Access 2000
    hOledbDBase5Proveedor OLE DB para dBase 5
    hOledbExcel2000Proveedor OLE DB para Excel 2000
    hOledbExcel97Proveedor OLE DB para Excel 97
    hOledbLotus4Proveedor OLE DB para Lotus 4
    hOledbOracleProveedor OLE DB para Oracle
    hOledbSQLServerProveedor OLE DB para SQL Server
OLE DB Atención: Para utilizar una conexión OLE DB, es necesario:
  • instalar MDAC versión 2.6 o posterior (instalación realizada por WINDEV o WEBDEV y al crear el programa de instalación)
  • instalar el proveedor OLE DB que corresponde a la base de datos utilizada.
    Este parámetro es devuelto por la propiedad ..CtOLEDBProvider.
<Access>: Constante opcional
Configura el tipo de acceso a la base de datos.
hOReadWrite
(valor predeterminado)
Se puede acceder a la base de datos en lectura/escritura. Se pueden leer y escribir nuevos registros.
hOReadSe puede acceder a la base de datos en modo de solo lectura. Solo se pueden leer registros. No se pueden agregar o eliminar.
Este parámetro es devuelto por la propiedad ..CtAccess.
<Extended information>: Cadena de caracteres opcional (con comillas)
Información opcional insertada en la cadena de conexión a la base de datos. Si se reconocen palabras clave específicas, la información correspondiente se extrae de la cadena de conexión. El resto de la cadena de conexión se envía a la base de datos. Enseguida, los parámetros extraídos son procesados por el Acceso Nativo o el Acceso OLE DB utilizado.
Estas palabras clave deben indicarse de la siguiente manera: "<Palabra clave> = <Valor&gt".
Conectores Nativos Las palabras clave reconocidas por el acceso nativo a MySQL:
Puerto del servidorConsulte la documentación sobre MySQL (palabra clave = 'mysql_real_connect') para más detalles.
Enchufe Unix
Flag Cliente
OLE DB Las palabras clave reconocidas para el acceso por parte de un proveedor de bases de datos OLE:
Tiempo de espera de comandos WDDefine el tiempo máximo de espera (en segundos) para ejecutar un comando (tiempo de espera del comando). No funciona con el acceso nativo a MySQL.
Tiempo de espera de conexión WDDefine el tiempo máximo de espera (en segundos) para establecer la conexión (tiempo de espera de la conexión).. No funciona con el acceso nativo a MySQL.
HFSQL Client/Server Las palabras clave reconocidas para el acceso mediante HFSQL Client/Server son las siguientes:
ENCRYPTIONPermite el cifrado de los datos intercambiados entre el Cliente y el Servidor. Esta palabra clave puede tomar dos valores:
  • RÁPIDO
  • RC5_16 para utilizar un cifrado RC5 de 16 vueltas.
Tsu parámetro es devuelto por ..CtExtendedInfo.
<Additional options>: Constante
Si no se especifica este parámetro, el motor HFSQL define automáticamente los parámetros que se deben utilizar en función de la base de datos a la que se accede y del proveedor OLE DB utilizado.
Para forzar algunos parámetros, se pueden combinar las siguientes constantes:
  • Ubicación de cursores
    hClientCursorCursor utilizado por MDAC. Por lo general, ofrece más funcionalidades que un cursor servidor. Un cursor cliente obligatoriamente es un cursor estático.
    hServerCursorCursor utilizado por la base de datos. Este cursor puede aplicar fácilmente las modificaciones realizadas por otros usuarios a los datos.
  • Tipo de cursor
    hDynamicCursorCursor que ofrece una gran cantidad de funcionalidades pero que consume mucha memoria. Este cursor permite realizar varios movimientos. Permite acceder a todas las modificaciones, adiciones y eliminaciones realizadas por los demás usuarios.
    hForwardOnlyCursorCursor rápido que consume poca memoria. El desplazamiento se realiza del primer al último registro. Los datos modificados por otros usuarios no son visibles.
    hOpenKeysetCursorCursor que utiliza un conjunto de registros fijo. Solo se almacenan las claves que corresponden al registro, no los registros (consume menos memoria). No se puede acceder a los registros eliminados. Las modificaciones realizadas por otros usuarios son visibles (pero no los registros agregados).
    hStaticCursorHace una copia de los registros de la consulta en la memoria (alto consumo de memoria). Todos los tipos de desplazamiento están permitidos.
  • Modo de bloqueo
    hReadOnlyCursorEl conjunto de registros utilizado no podrá modificarse.
    hOptimisticCursorEl registro se bloquea durante la actualización
    hPessimisticCursorEl registro se bloquea tan pronto como entra en modo de edición para ser modificado.
Atención: no todos los proveedores OLE DB soportan todos los tipos de cursores.
Este parámetro es devuelto por la propiedad ..CtCursorOptions.

Abrir un Connection definido por un Connection Variable Ocultar los detalles

<Result> = gpwOpenConnection(<Connection name>)
<Result>: booleano
  • True si se realizó la operación,
  • False si se produce un problema. La función HErrorInfo permite identificar el error.
La apertura real de la conexión no se realiza con la función gpwOpenConnection. La función puede devolver True incluso si los valores pasados como parámetro son incorrectos.
Utilice gpwOpen para especificar la ubicación de los archivos de datos para la gestión de los derechos, así como la ubicación de los archivos de datos para la identificación de los usuarios. Los directorios deben especificarse en relación con el directorio del servidor.
<Connection name>: Variable de tipo Connection
Nombre de la Connection Variable a abrir. Este nombre no debe ser usado por otra conexión (definida en el análisis, o con HOpenConnection o HDescribeConnection).
Observaciones

Utilizar una cadena de caracteres para el proveedor OLE DB

Para encontrar fácilmente la cadena de caracteres que se debe utilizar para definir el proveedor OLE DB, le recomendamos seguir los siguientes pasos:
  1. En el editor de análisis, mostrar la ventana de conexiones del description: en el panel "Análisis", en el grupo "Connection", haga clic en "Connection s".
  2. Seleccione el proveedor que se utilizará ("Conexión mediante").
  3. Enseguida, se muestra la cadena de caracteres que corresponde al proveedor. Esta cadena de caracteres se puede utilizar en la sintaxis 2 en lugar de las constantes.

Si se produce un error, no se conserva la descripción de la conexión

Si la conexión no se abre, no se valida la descripción de la conexión. Por lo tanto, es posible redefinir una conexión con el mismo nombre.
Por ejemplo, si no se puede establecer la conexión con la contraseña predeterminada, se puede realizar un nuevo intento con otra contraseña.

Se abren dos conexiones en el servidor

Dos contextos HFSQL son utilizados por el User Groupware. En el centro HFSQL Control, notará dos conexiones para una sola instancia de la aplicación.

Validez de la conexión

La función gpwOpenConnection se comporta como HDescribeConnection: esta función no establece la conexión inmediatamente.
La función gpwOpenConnection identifica los parámetros de conexión que se utilizarán para establecer la conexión.
Para validar esta conexión, se puede llamar a la función HOpenConnection antes de gpwOpenConnection con los mismos parámetros. Así, los parámetros de conexión ya se habrán verificado al llamar a la función gpwOpenConnection.
WINDEVWEBDEV - Código ServidorWindowsLinuxAjax

Pseudo-conexión a una base de datos HFSQL Classic

Los archivos de datos OLE DB o nativos se describen en el editor de análisis. Para manipular estas descripciones con una base de datos HFSQL Clásica, <proveedor de la base de datos OLE o Conector Nativo> deben corresponder a la constante hAccessHF7.
Los archivos de datos en formato HFSQL Classic correspondientes a la description de la BD OLE o los archivos nativos se crearán (si es necesario) en el directorio definido por <Fuente de datos>.
Componente : wd250gpu.dll
Versión mínima requerida
  • Versión 9
Esta página también está disponible para…
Comentarios
Exemplo de uso do Driver MS SQL Server
//Conexao
ok1, ok2 is boolean

myConn is Connection
myConn..Provider = hNativeAccessSQLServer
myConn..User = "adriano"
myConn..Password = "adriano@2016"
myConn..Source = "192.168.0.1\Projeto01"
myConn..Database = "Projeto01"
myConn..Access = hOReadWrite

ok1 = HOpenConnection(myConn)

ok2 = gpwOpenConnection(myConn)

NextTitle("Atenção")

If ok1 = true and ok2 = true

IF gpwInitAnalysis() = False THEN
Error(ErrorInfo())
ELSE
Info("Conexão ok com o banco de dados SQL Server e ativou o groupware")
END

end


IF ok = False THEN

Info("Falha ao tentar conectar no Servidor")

ELSE

Info("Conectou com sucesso no banco de dados!")

END
BOLLER
28 11 2016
gpw in Client Server
Using Manual mode and ClientServer doesn't work as expected, however it does work
You need to set the connection parameters in both the connection AND then use gpwOpenConnection with all the parameters. The trick is that those parameters ARE NOT optional. (Just because the compiler doesn't crash, doesn't mean that it works)

Like so -
Make your usual connection settings and open your connection
myConn is Connection
myConn..Database = "TheDatabaseName"
myConn ..Provider = "MSSQL or whatever"
myConn..Username="ME"
...
HOpenConnection(myConn )

then open the gpw connection using the same settings -
gpwOpenConnection(myConn,sUserName,sPassword,gsDatebaseSource,gsDatebaseName,szConnectionType)

Then you can use HChangeConnection( "somefiles", MyConn)

HTH,
Chris
ccordes
22 01 2014
2nd syntax doesn't work
1 - In the first example it should read Error(HErrorInfo())
ErrorInfo() will not return anything.

2 - To me, it seems that using a connection variable like in gpwOpenConnection(MyGpwConnection) doesn't work at all.
It always returns Result = False and no Error-number.

3 - The classic approach with all parameters in the same line works just fine.
Jimbo
15 08 2013
Spelling mistake in the example
IF nRes <> gpwOk THEN
SWITCH nRes
CASE gpwError: Error("Error while initializing the groupware.", ErrorInfo())
CASE gpwUnknownUser: Error("Unknown user.") //gpwUnknwonUser
CASE gpwInvalidPassword: Error("Invalid password")
END
END
Riebens
13 03 2012