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?


Image


Saludos