Hola Eduardo,
J. Eduardo Moreno escribió:
Saludos a todos:
Ahora, cada vez que hago una consulta veo que se abre la conexión en
PostgreSQL, pero no la cierra.
¿Como le ordeno que cierre la conexión?
suponiendo que oConnection es el resultado de getConnection(), entonces
oConnection.close() 'cerrar la conexión
oConnection.dispose() 'liberar todos los recursos
Es conveniente definir oConnection como un objeto, y cerrar la conexión
cuando termines el trabajo o en caso de error:
Sub [DriverManager: TEXTO PLANO - txt/csv]
ON ERROR GOTO CLEAN_UP
Dim oDriverManager as Object 'el servicio DriverManager
'se encarga de buscar el Driver
apropiado
Dim sURLarchivo$ 'la ruta del archivo de campos
separados por comas
Dim sURL$ 'protocolo:sub-protocolo:ruta
Dim oConexion as Object 'getConnection() devuelve XConnection
Dim oComando as Object 'createStatement() retorna XStatement
Dim sComandoSQL$ 'el método executeQuery() de XStatement espera una
cadena
'con la consulta en SQL
Dim oResultado as Object 'el método executeQuery() retorna
XResultSet
Dim iColumnas% 'cantidad de columnas
Dim sNombre$, sApellido$, sEmail$, sCadena$ 'DATOS
'para que la conexión se exitosa requiere INFORMACIÓN ADICIONAL
Dim aProp(3) as New com.sun.star.beans.PropertyValue
aProp(0).Name = "Extension" 'la extensión del archivo
aProp(0).Value = "txt"
aProp(1).Name = "Charset" 'el juego de caracteres
aProp(1).Value = "utf-8"
aProp(2).Name = "HeaderLine" '¿la primer línea es encabezado?
aProp(2).Value = TRUE
aProp(3).Name = "FieldDelimiter" '¿qué caracter delimita los campos?
aProp(3).Value = "*"
'en un archivo con valores separados por comas (comma separetes
values: csv),
'NO ES OBLIGATORIO que sean COMAS los separadores
oDriverManager = createUNOService("com.sun.star.sdbc.DriverManager")
sURLarchivo = convertToURL("/home/ariel/Documentos/BASEplana.txt")
sURL = "sdbc:flat:" + sURLarchivo
oConexion = oDriverManager.getConnectionWithInfo( sURL, aProp)
oComando = oConexion.createStatement()
'el archivo ES / TIENE UNA SOLA TALBA
'empleamos su nombre (sin extensión) en el comando
sComandoSQL = "SELECT * FROM BASEplana" 'seleccionamos TODO:*
oResultado = oComando.executeQuery(sComandoSQL)
'cada elemento del resultado es una fila
Do While NOT IsNull(oResultado) AND oResultado.Next
sNombre = oResultado.getString(1)'obtenemos la cadena de la
columna 1
sApellido = oResultado.getString(2)'obtenemos la cadena de la
columna 2
sEmail = oResultado.getString(3)'obtenemos la cadena de la columna
3
sCadena = sCadena + sNombre + chr(13) + sApellido + chr(13) +_
sEmail + chr(13) + chr(13)
Loop
MsgBox sCadena,0, "Prueba de DriverManager - base plana"
CLEAN_UP:
If NOT IsNull(oConexion) Then
oConexion.close()
oConexion.dispose()
End If
End Sub
La etiqueta CLEAN_UP asegura que atente cualquier error o al finalizar
el trabajo, se tratará de cerrar la conexión (si no, deberías reiniciar
OOo).
OJO: si estás empleando la conexión activa que emplea OOo, no vayas a
cerrarla, pues deberías reiniciar todo para volver a conectarte
Revisando el sitio de Ariel veo como conectarse a la base de datos
PostgreSQL por medio del DriverManager.
mmm... parece que hace bastante que no le doy una mirada :-(
Saludos
Ariel.
--
Ariel Constenla-Haile
La Plata, Argentina
[EMAIL PROTECTED]
[EMAIL PROTECTED]
http://www.ArielConstenlaHaile.com.ar/ooo/
"Aus der Kriegsschule des Lebens
- Was mich nicht umbringt,
macht mich härter."
Nietzsche Götzendämmerung, Sprüche und Pfeile, 8.
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]