Page 1 of 2
Conexion a POSTGRESQL via ADO - SOLUCIONADO
Posted: Wed Jan 28, 2015 5:21 pm
by leandro
Compañeros del foro tengan buen día...
Resulta que Tengo un nuevo cliente el cual tiene una base de datos POSTGRESQL, he intentado conectarme a la db sin exito hasta el momento. Estoy utilizando la siguiente cadena de conexión:
Code: Select all
oCon:ConnectionString:="Driver={PostgreSQL ODBC Driver(UNICODE)};Server="+alltrim(dHost)+";Port="+alltrim(dPrto)+";User="+alltrim(dUser)+";Password="+alltrim(dPass)+";"
TRY
oCon:Open()
CATCH oError
MsgStop( "No pude abrir la conexión para crear las tablas !", "Error de datos")
QUIT
END
Pero no funciona.... en el foro descargue otra e intente, es la siguiente:
Code: Select all
cDriSql := "Provider=PostgreSQL OLE DB Provider;"+;
"Location=finca_raiz;"+;
"Data Source=192.168.0.119;"+;
"User ID=postgres;"+;
"PORT=5432;"+;
"Password=123456;"
if oCon == nil
oCon := TOleAuto():new("ADODB.Connection")
oCon:ConnectionString := cDriSql
TRY
oCon:Open()
lConnect := .t.
CATCH
oCon := nil
Msginfo("Error. No fue posible la conexi¢n con el servidor SQL" )
return .F.
END
else
lConnect := .t.
endif
Pero tampoco, no se que este haciendo mal...
Revise en -->panel de control--->origenes de datos--->Controladores y ahi si estan los nombres de los drivers, coloque los nombres tal como aparecen en la lista. Aun asi no me funciona...
Alguien tiene idea sobre este tema?
Saludos
Re: Conexion a POSTGRESQL via ADO
Posted: Wed Jan 28, 2015 7:04 pm
by carlos vargas
ya probaste con el driver ansi?
salu2
carlos vargas
Re: Conexion a POSTGRESQL via ADO
Posted: Wed Jan 28, 2015 7:10 pm
by leandro
Carlos primero que todo gracias por responder...
Si ya lo intente de ambas formas... pero aun asi no me funciona.
La verdad no se si tenga que ver con driver...
¿De casualidad tienes algun driver para instalar y hacer la respectiva prueba?
Saludos
Re: Conexion a POSTGRESQL via ADO
Posted: Wed Jan 28, 2015 9:59 pm
by carlos vargas
este servido postgreesql esta configurado para aceptar conexiones remotas?
ya has intentado conectarte usando el programa pgadmin? te funciona?
en postgreesql hay que dar permisos que ip de la red local puede ser usados para poder conectarse al servidor.
como estas con estos temas?
salu2
carlos vargas
Re: Conexion a POSTGRESQL via ADO
Posted: Wed Jan 28, 2015 10:00 pm
by carlos vargas
si se puede te puedo ayudar por teamviewer
salu2
Re: Conexion a POSTGRESQL via ADO
Posted: Thu Jan 29, 2015 1:58 pm
by leandro
Buenos Dias Carlos... Muchas gracias por responder....
1. este servidor postgreesql esta configurado para aceptar conexiones remotas?
Para ser sincero... no lo se, para hacer pruebas instale de la db en un equipo localmente tal como lo hago con mysql, pero la verdad es que desconozco como se verifica si se aceptan o no conexiones remotas.
2. ya has intentado conectarte usando el programa pgadmin? te funciona?
Si ya lo intente y si funciona.
3. en postgreesql hay que dar permisos que ip de la red local puede ser usados para poder conectarse al servidor
Como te mencione anteriormente desconozco la forma de habilitar o deshabilitar ese tipo de opciones.
4. si se puede te puedo ayudar por teamviewer
Claro que si tu me diras a que horas?
De antemano gracias.
Re: Conexion a POSTGRESQL via ADO
Posted: Thu Jan 29, 2015 2:50 pm
by carlos vargas
ok, dejame llegar al work y te contacto,
tiene skype?
salu2
carlos vargas
Re: Conexion a POSTGRESQL via ADO
Posted: Thu Jan 29, 2015 3:21 pm
by leandro
Si Carlos yo entro a skype con mi cuenta de hotmail.
leandroalfonso111@hotmail.com
Re: Conexion a POSTGRESQL via ADO
Posted: Thu Jan 29, 2015 6:19 pm
by compubrion
Saludos !
Puedes configurar el archivo pg_hba.conf para que aceptes las conexiones que tu quieras, y en el archivo postgresql.conf busca la Connection Settings y quita el signo numeral para que quede asi :
listen_addresses = '*'
Re: Conexion a POSTGRESQL via ADO
Posted: Thu Jan 29, 2015 6:22 pm
by RenOmaS
Buenas
Cual es la aplicacion cliente (DLL) que estas a utilizar?
Re: Conexion a POSTGRESQL via ADO
Posted: Thu Jan 29, 2015 7:24 pm
by russimicro
El string que mencionas funciona perfecto.. es el que yo uso
cDriSql := "Provider=PostgreSQL OLE DB Provider;"+;
"Location=finca_raiz;"+;
"Data Source=192.168.0.119;"+;
"User ID=postgres;"+;
"PORT=5432;"+;
"Password=123456;"
if oCon == nil
oCon := TOleAuto():new("ADODB.Connection")
oCon:ConnectionString := cDriSql
TRY
oCon:Open()
lConnect := .t.
CATCH
oCon := nil
Msginfo("Error. No fue posible la conexi¢n con el servidor SQL" )
return .F.
END
else
lConnect := .t.
endif
Debe buscar el error en los permisos del server... prueba primero con el PGADMIN III , que trae el mismo postgres
Saludos
Re: Conexion a POSTGRESQL via ADO
Posted: Thu Jan 29, 2015 7:47 pm
by leandro
Muchas Gracias por las respuestas
Contenido pg_hba.conf
Code: Select all
# PostgreSQL Client Authentication Configuration File
# ===================================================
#
# Refer to the "Client Authentication" section in the PostgreSQL
# documentation for a complete description of this file. A short
# synopsis follows.
#
# This file controls: which hosts are allowed to connect, how clients
# are authenticated, which PostgreSQL user names they can use, which
# databases they can access. Records take one of these forms:
#
# local DATABASE USER METHOD [OPTIONS]
# host DATABASE USER ADDRESS METHOD [OPTIONS]
# hostssl DATABASE USER ADDRESS METHOD [OPTIONS]
# hostnossl DATABASE USER ADDRESS METHOD [OPTIONS]
#
# (The uppercase items must be replaced by actual values.)
#
# The first field is the connection type: "local" is a Unix-domain
# socket, "host" is either a plain or SSL-encrypted TCP/IP socket,
# "hostssl" is an SSL-encrypted TCP/IP socket, and "hostnossl" is a
# plain TCP/IP socket.
#
# DATABASE can be "all", "sameuser", "samerole", "replication", a
# database name, or a comma-separated list thereof. The "all"
# keyword does not match "replication". Access to replication
# must be enabled in a separate record (see example below).
#
# USER can be "all", a user name, a group name prefixed with "+", or a
# comma-separated list thereof. In both the DATABASE and USER fields
# you can also write a file name prefixed with "@" to include names
# from a separate file.
#
# ADDRESS specifies the set of hosts the record matches. It can be a
# host name, or it is made up of an IP address and a CIDR mask that is
# an integer (between 0 and 32 (IPv4) or 128 (IPv6) inclusive) that
# specifies the number of significant bits in the mask. A host name
# that starts with a dot (.) matches a suffix of the actual host name.
# Alternatively, you can write an IP address and netmask in separate
# columns to specify the set of hosts. Instead of a CIDR-address, you
# can write "samehost" to match any of the server's own IP addresses,
# or "samenet" to match any address in any subnet that the server is
# directly connected to.
#
# METHOD can be "trust", "reject", "md5", "password", "gss", "sspi",
# "ident", "peer", "pam", "ldap", "radius" or "cert". Note that
# "password" sends passwords in clear text; "md5" is preferred since
# it sends encrypted passwords.
#
# OPTIONS are a set of options for the authentication in the format
# NAME=VALUE. The available options depend on the different
# authentication methods -- refer to the "Client Authentication"
# section in the documentation for a list of which options are
# available for which authentication methods.
#
# Database and user names containing spaces, commas, quotes and other
# special characters must be quoted. Quoting one of the keywords
# "all", "sameuser", "samerole" or "replication" makes the name lose
# its special character, and just match a database or username with
# that name.
#
# This file is read on server startup and when the postmaster receives
# a SIGHUP signal. If you edit the file on a running system, you have
# to SIGHUP the postmaster for the changes to take effect. You can
# use "pg_ctl reload" to do that.
# Put your actual configuration here
# ----------------------------------
#
# If you want to allow non-local connections, you need to add more
# "host" records. In that case you will also need to make PostgreSQL
# listen on a non-local interface via the listen_addresses
# configuration parameter, or via the -i or -h command line switches.
# TYPE DATABASE USER ADDRESS METHOD
# IPv4 local connections:
host all all 127.0.0.1/32 md5
# IPv6 local connections:
host all all ::1/128 md5
# Allow replication connections from localhost, by a user with the
# replication privilege.
#host replication postgres 127.0.0.1/32 md5
#host replication postgres ::1/128 md5
Contenido postgresql.conf
Code: Select all
#------------------------------------------------------------------------------
# CONNECTIONS AND AUTHENTICATION
#------------------------------------------------------------------------------
# - Connection Settings -
listen_addresses = '*' # what IP address(es) to listen on;
# comma-separated list of addresses;
# defaults to 'localhost'; use '*' for all
# (change requires restart)
port = 5432 # (change requires restart)
max_connections = 100 # (change requires restart)
Creo q estan habilitadas todas las opciones...
Re: Conexion a POSTGRESQL via ADO
Posted: Thu Jan 29, 2015 7:51 pm
by leandro
RenOmaS Muchas Gracias por Responder....
Perdon mi ignorancia, pero según mis conocimientos creo que la aplicación cliente dll con la que trabajan es POWER BUILDER.
No se si esa era la pregunta.
Saludos
Re: Conexion a POSTGRESQL via ADO
Posted: Thu Jan 29, 2015 8:02 pm
by RenOmaS
Hola:
Creo que dependiendo del cliente (DLL) la conexion string cambia, para esta q tu colocas
Provider=PostgreSQL OLE DB Provider;
Creo que es la que esta aqui
http://pgfoundry.org/projects/oledb/
En todo caso si ya existe alguna otra aplicacion (en otro lenguage de programacion) puedes ver como ella se conecta con el Psotgres
Re: Conexion a POSTGRESQL via ADO
Posted: Thu Jan 29, 2015 8:24 pm
by leandro
Me acabe de dar cuenta que por POWER BUILDER se conectan atravez de una conexion DSN del Sistema...
Como me puedo conectar de esa manera? Alguien tiene algun ejemplo?
Saludos