Re: [ODBC] versions of oDBC driver

From: Zlatko Matić <zlatko(dot)matic1(at)sb(dot)t-com(dot)hr>
To: <pgsql-general(at)postgresql(dot)org>, <greg(dot)campbell(at)us(dot)michelin(dot)com>, <pgsql-odbc(at)postgresql(dot)org>, <merlin(dot)moncure(at)rcsonline(dot)com>
Subject: Re: [ODBC] versions of oDBC driver
Date: 2005-10-26 12:48:57
Message-ID: 000001c5da2e$9a167140$0123fea9@zlatkovyfkpgz6
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general pgsql-odbc

Hello.
After I tried different things, I finally figured out where is the problem
with connection string: "Driver={PostgreSQL}" must be changed to
"Driver={PostgreSQL Unicode}". Now it works.
But this new connection string works only with Postgres 8.1, while it
doesn't work with Postgres 8.0...
I must say that current documentation lacks with information about
connection string parameters. Everything I could find about it was quite old
and not sufficient. It would be really nice if someone competent would write
some document regarding ODBC connection string parameters to explain their
meaning for "dummies" like me. I suppose I'm not the only one trying to use
MS Access with PostgreSQL. I think it is quite good combination for
hobbiests and people who are not programmers but want to create some
specific solutions for their job. MS Access is very easy to use and learn
and is widespread also, so supporting people in such efforts would
definitely increase popularity of PostgreSQL. Understanding ODBC connection
string parameters is essential for that.
Regarding connection parameters, for example, I would kindly ask you to tell
me which parameters are not neccessary in my connection string, so that I
can remove it, in order to allow more space in connection string. You have
already mentioned: "Secondarily, I find that not every parameter is
essential for the connection string. You might trying dropping your
strConnParams, and if that helps, debugging them one at a time, or by
halves.", so I would like to optimize my connection string to allow more
space for really important parameters in limited connection string in
Access...
This is my connection string:

strConnInfo = "ODBC;Driver={PostgreSQL Unicode};Server=" & SERVER & ";Port="
& PORT & ";Database=" & DATABASE & ";"
strConnUserPass = "Uid=" & USERNAME & ";Pwd=" & PASSWORD & ";"
strConnParms = "A0=0;A1=6.4;A2=0;A3=0;A4=1;A5=0;A6=" & A6 & ";A7=100;A8=" &
SOCKET & ";A9=1;" & _
"B0=254;B1=8190;B2=0;B3=0;B4=1;B5=1;B6=0;B7=1;B8=0;B9=0;" & _
"C0=0;C1=0;C2=dd_;"

strConnection = strConnInfo & strConnUserPass & strConnParms

What can I remove from it?

Thanks,

Zlatko

----- Original Message -----
From: "Greg Campbell" <greg(dot)campbell(at)us(dot)michelin(dot)com>
To: "Zlatko Matić" <zlatko(dot)matic1(at)sb(dot)t-com(dot)hr>
Cc: <merlin(dot)moncure(at)rcsonline(dot)com>; <pgsql-odbc(at)postgresql(dot)org>
Sent: Friday, October 21, 2005 5:12 PM
Subject: Re: [ODBC] versions of oDBC driver

Did you changed the Postgresql server and the client ODBC driver at the same
time?
My guess is that the pg_hba is not configured to let you in,...

I would make sure the PostgreSQL server is set to having connection logging
enabled, and see what type of
errors it is throwing on the server.

Secondarily, I find that not every parameter is essential for the connection
string. You might trying
dropping your strConnParams, and if that helps, debugging them one at a
time, or by halves.

Zlatko Matić wrote:
> Hello.
> The error is error 3151: "ODBC--connection to '{PostgreSQL}Localhost'
> failed".
> I have a form with text boxes for entering Database name, IP adress,
> username, password etc. When a user push the confirmation button, a
> function "ConnectionToServer" is executed to: a) create connection string,
> b) to check whether connection string works, c) to call functions for
> relinking linked tables and adjusting connection string in pass-through
> queries. The code is following:
>
> Option Compare Database
> Public strConnection As String
>
> Function ConnectionToServer(SERVER As String, PORT As String, SOCKET As
> String, DATABASE As String, USERNAME As String, PASSWORD As String,
> ENCODING As String) As Boolean
>
> Dim db As Object
> Dim qdf As Object
> Dim qdfSQL As String
> Dim rs As Object
>
> Dim strConnInfo As String
> Dim strConnUserPass As String
> Dim strConnParms As String
> Dim CurrentUser As String
> Dim A6 As String
>
> On Error GoTo ErrorHandler
>
> DoCmd.Hourglass True
>
> Set db = CurrentDb
>
> ' PG_ODBC_PARAMETER ACCESS_PARAMETER
> ' *********************************************
> ' READONLY A0
> ' PROTOCOL A1
> ' FAKEOIDINDEX A2 'A2 must be 0 unless A3=1
> ' SHOWOIDCOLUMN A3
> ' ROWVERSIONING A4
> ' SHOWSYSTEMTABLES A5
> ' CONNSETTINGS A6
> ' FETCH A7
> ' SOCKET A8
> ' UNKNOWNSIZES A9 ' range [0-2]
> ' MAXVARCHARSIZE B0
> ' MAXLONGVARCHARSIZE B1
> ' DEBUG B2
> ' COMMLOG B3
> ' OPTIMIZER B4 ' note that 1 = _cancel_ generic
> optimizer...
> ' KSQO B5
> ' USEDECLAREFETCH B6
> ' TEXTASLONGVARCHAR B7
> ' UNKNOWNSASLONGVARCHAR B8
> ' BOOLSASCHAR B9
> ' PARSE C0
> ' CANCELASFREESTMT C1
> ' EXTRASYSTABLEPREFIXES C2
>
> Select Case ENCODING
> Case "DEFAULT"
> A6 = ""
> Case "UNICODE"
> A6 = "CLIENT_ENCODING=UNICODE"
> Case "SQL_ASCII"
> A6 = "CLIENT_ENCODING=SQL_ASCII"
> Case "WIN1250"
> A6 = "CLIENT_ENCODING=WIN1250"
> Case "UTF8"
> A6 = "CLIENT_ENCODING=UTF8"
> Case Else
> A6 = ""
> End Select
>
> ' Connection String
> strConnInfo = "ODBC;Driver={PostgreSQL};Server=" & SERVER & ";Port=" &
> PORT & ";Database=" & DATABASE & ";"
> strConnUserPass = "Uid=" & USERNAME & ";Pwd=" & PASSWORD & ";"
> strConnParms = "A0=0;A1=6.4;A2=0;A3=0;A4=1;A5=0;A6=" & A6 & ";A7=100;A8="
> & SOCKET & ";A9=1;" & _
> "B0=254;B1=8190;B2=0;B3=0;B4=1;B5=1;B6=0;B7=1;B8=0;B9=0;" & _
> "C0=0;C1=0;C2=dd_;"
>
> strConnection = strConnInfo & strConnUserPass & strConnParms
>
> 'Checking connection
> Set qdf = db.CreateQueryDef("")
> qdf.connect = strConnection
> strSQL = "SELECT CURRENT_USER AS ""CURRENTUSER"""
> qdf.SQL = strSQL
> qdf.returnsrecords = True
> Set rs = qdf.openrecordset()
>
> CurrentUser = rs.Fields("CURRENTUSER")
>
> DoCmd.Hourglass False
>
> If CurrentUser = USERNAME Then
> MsgBox "You have successfully connected as: " & USERNAME, ,
> "Connection to the server"
> ConnectionToServer = True
> Else
> MsgBox "Connection to server failed. Check connection parameters and
> try again."
> ConnectionToServer = False
> GoTo ErrorHandler
> End If
>
>
> DoCmd.Hourglass True
>
> 'Calling functions for relinking of linked tables and adjusting connection
> string of pass-through queries.
> Call RelinkLinkedTables(SERVER, DATABASE)
> Call RelinkPassThroughQueries
>
> GoAway:
>
> DoCmd.Hourglass False
> Exit Function
>
> ErrorHandler:
>
> Dim strErr As String
> MsgBox "Connection to server failed. Check connection parameters and
> try again", , "Connection to Server"
>
> strErr = "VBA-Error Information" & vbNewLine
> strErr = strErr & "Number: " & vbTab & vbTab & Err.Number & vbNewLine
> strErr = strErr & "Description: " & vbTab & Err.Description &
> vbNewLine
> strErr = strErr & "LastDLLError: " & vbTab & Err.LastDllError &
> vbNewLine
> strErr = strErr & vbNewLine
> MsgBox strErr, vbOKOnly + vbExclamation, "Error"
>
> Resume GoAway
>
> End Function
>
>
> It was working perfectly well with PostgreSQL 8.0.4 and
> psqlodbc-08_00_0102...
>
> What is wrong now ?
>
> Zlatko
> ----- Original Message -----
> From: Merlin Moncure
> To: Zlatko Matic
> Cc: pgsql-odbc(at)postgresql(dot)org
> Sent: Thursday, October 20, 2005 2:06 PM
> Subject: Re: [ODBC] versions of oDBC driver
>
>
> why not? What kind of error are you getting? The latest revisions of
> the driver are probably best unless you are using declare/fetch (see
> archives).
>
>
>
> Merlin
>
>
>
>
> ------------------------------------------------------------------------------
>
> From: pgsql-odbc-owner(at)postgresql(dot)org
> [mailto:pgsql-odbc-owner(at)postgresql(dot)org] On Behalf Of "Zlatko Matic"
> Sent: Thursday, October 20, 2005 6:34 AM
> To: pgsql-odbc(at)postgresql(dot)org; pgsql-interfaces(at)postgresql(dot)org;
> pgsql-general(at)postgresql(dot)org
> Subject: [ODBC] versions of oDBC driver
>
>
>
> Hello.
>
>
>
> Could someone say which versions of ODBC drivers are recommended for
> PostgreSQL/MS Access 2003 combination, for:
>
> a) Postgres 8.0.4
>
> b) Postgres 8.1 beta
>
>
>
> Namely, I was not able to connect from my Access front-end when I
> migrated from Postgres 8.0.4 to Postgres 8.1 beta3....
>
> Are there any significant changes that could cause such problems in
> connection strings ?
>
>
>
> Zlatko
>

--------------------------------------------------------------------------------

---------------------------(end of broadcast)---------------------------
TIP 1: if posting/reading through Usenet, please send an appropriate
subscribe-nomail command to majordomo(at)postgresql(dot)org so that your
message can get through to the mailing list cleanly

In response to

Browse pgsql-general by date

  From Date Subject
Next Message Zlatko Matić 2005-10-26 12:52:36 querying PostgreSQL version?
Previous Message Venki 2005-10-26 12:42:32 Re: How to get the value in the lastvalue field

Browse pgsql-odbc by date

  From Date Subject
Next Message Rainer Bauer 2005-10-26 13:07:54 UTF encoding (win32) ?
Previous Message Anoop Kumar 2005-10-26 06:23:39 Fix for Declare/Fetch issue