Re: booleanos de postgres en ADO y ODBC

From: "Mariano Reingart" <mariano(at)nsis(dot)com(dot)ar>
To: "Gabriel Ferro" <gabrielrferro(at)yahoo(dot)com(dot)ar>, <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: booleanos de postgres en ADO y ODBC
Date: 2009-05-04 15:56:15
Message-ID: 03210B09EC6F4040A3159C6EE3218519@pc1
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Gabriel Ferro wrote:
> Perdon por mi insistencia pero no se a quien acudir, alguien ha usado
> campos booleanos con ADO? como les dije antes, me parece que alli
> esta el problema
> probe con la cadena de coneccion
> cn.Open "Provider=PostgreSQL; " & _
> "Location=incrimpoler; " & _
> "Data Source=192.168.0.2; " & _
> "User ID = gferro; password = miclave; " 'adOpenKeyset"

Yo uso ODBC de la siguiente forma:
cnnstr = "Provider=MSDASQL;Driver={PostgreSQL ANSI};" & _
"SERVER=localhost;DATABASE=saraza;" & _
"UID=sistema;PWD=saraza;" & _
"CONNSETTINGS=SET Datestyle TO 'DMY'%3b" &_
"SET client_ecoding TO 'LATIN1'3b;" & _
"BOOLSASCHAR=0;TrueIsMinus1=1;" & _
"TEXTASLONGVARCHAR=1;" & _
"SSLMODE=require;" & _
"UseDeclareFetch=0;PARSE=1;" & _
"UseServerSidePrepare=0;DisallowPremature=0;UpdatableCursors=0"

> y los booleanos dan siempre verdadero.

Con "BOOLSASCHAR=0;TrueIsMinus1=1" devuelve los booleanos como -1 para true
y 0 para false, como se usa en VB (sino puede devolverlos como caracteres
't' o 'f' u otra convención que puede no ser compatible con el lenguaje)

> cambie haciendo un DSN de usuario que use el cotnrolador PostgreSQL
> ANSI y con el andan perfecto los boleanos..
>
> la cosa es que no tengo como especificarle a OLEDB que use ANSI o
> UNICODE.

Con el driver ODBC: "Driver={PostgreSQL ANSI}"

Cuando probé el proveedor nativo PostgreSQL para ADO (PgOleDB) no tuve
buenos resultados (quizás por como lo uso desde mis programas), y no parece
muy completo ni actualizado.
Con el driver ODBC (PsqlODBC) no tuve problemas, salvo que luego de la
versión 8.1.200 necesité agregar las últimas lineas (no usar declare/fetch,
server side prepare, disallow premature y updatable cursors, y usar la
opción parse statements) y se deben abrir los Recorset con los cursores
locales (CursorLocation = adUseClient)

> alguna idea sin tener que crear un ODBC en cada maquina que use la
> aplicacion?

Con esta cadena de conexión, no hace falta configurar un orígen de datos en
cada maquina, solamente tenes que tener instalado el driver pgsqlodbc.

Sds
Mariano

In response to

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Alvaro Herrera 2009-05-04 16:00:37 Re: Re: [pgsql-es-ayuda] Re: [pgsql-es-ayuda] comportamiento extraño
Previous Message Alvaro Herrera 2009-05-04 15:52:20 Re: Re: [pgsql-es-ayuda] Re: [pgsql-es-ayuda] comportamiento extraño