lunes, 2 de abril de 2012

Conectando Progress con ODBC

Para conectarnos a Progress mediante ODBC tenemos que instalar el driver primeramente, éste viene incluido en la suite de Progress DB y tambien tenemos que tener el servicio de BD escuchando en algun puerto conocido.

Despues ejecutaremos en Administrador de Conexiones ODBC, con el comando odbcad32 y configuraremos nuestra conexión de la siguiente manera:


Es importante usar el usuario sysprogress que originalmente no tiene password. Ahora para conectarnos a la BD lo podemos hacer desde cualquier cliente odbc; yo particularmente uso uno que se llama SQLDBX (http://www.sqldbx.com/).

Ahora ya teniendo la conexión podemos ver los usuarios de la BD con el siguiente query:

select "_userid", "_password", "_user-name" from pub."_user"

Para ver las tablas que contiene la BD podemos ejecutar el siguiente query:

SELECT * FROM sysprogress.SYSTABLES WHERE TBLTYPE = 'T'

Para ver el contenido de alguna tabla podemos ejecutar un query de la siguiente manera:

SELECT * FROM PUB.BENEFITS

Es importante siempre utilizar el esquema PUB, ya que de no hacerlo los queries no funcionarán.

Para crear un usuario nuevo podemos ejecutar la siguiente secuencia de queries:

create user 'sa','password';
grant dba to 'sa';


Una vez que creamos el usuario, automáticamente el usuario sysprogress ya no funciona para la conexión ODBC.


6 comentarios:

Anónimo dijo...

Hola , quisiera saber como instalar el driver de obdc

YoRcH dijo...

https://www.progress.com/products/datadirect-connect/odbc-drivers/data-sources/openedge

Solo descarga el driver con configura el DSN, ejecutando odbcad32.exe. Si tu windows en 64 bits entonces debes ejecutar c:\Windows\SysWOW64\odbcad32.exe

Lucho Montero dijo...

Hola Jorge Alberto:
Buenas noches.
Disculpa que moleste por un tema.
Estoy accediendo a una Base de Datos Progress con ODBC Utilizando OpendEdge, pero al momento de crear una Tabla Temporal me manda error de Sintaxis.

Caso1:
CREATE TABLE #tbl1 (cvalor char(30) NOT NULL)

Caso 2:
CREATE TABLE ##tbl1 (cvalor char(30) NOT NULL)

Caso3:
CREATE TEMP-TABLE tbl1 (cvalor char(30) NOT NULL)

En los 3 casos envia error de Sintaxis.

Saludos.
Atte.
Lucho Montero.
Lima - Peru.

YoRcH dijo...

No estoy familiarizado con el lenguaje de progress, realmente lo único que hice fué importar información desde éste. Pero esa sintaxis que usas es para crear tablas temporales en SQL Server y no sé si Progress soporte esa sintaxis.

Encontré estos post, chécalos.

http://www.lawebdelprogramador.com/foros/Progress/1049517-Crear-tabla-temporal-y-vaciar-en-un-Browse.html

http://www.lawebdelprogramador.com/foros/Progress/437021-tabla-temporal.html

Anónimo dijo...

Hola amigo, por favor si podrías ayudarme ... como podría hacer la conexión remota con Progress.
Localmente si puedo conectarme con creando un DNS en Windows con el usuario SYSPROGRESS y puerto 2500 pero cuando intento hacer remotamente no me permite manda un error de conexión al host y/o puerto.
Quizás se tenga que hacer alguna configuración en la Base para que permita conexiones remotas?.

Saludos.
Atte.
Lucho Montero.

YoRcH dijo...

Eso parece un error de conexión, al parecer tu progress server no acepta conexiones remotas, debes de checar la configuración de tu progress.

Salu2 a to2.