Thread: 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@postgresql.org [mailto:pgsql-odbc-owner@postgresql.org] On Behalf Of "Zlatko Matic"
Sent: Thursday, October 20, 2005 6:34 AM
To: pgsql-odbc@postgresql.org; pgsql-interfaces@postgresql.org; pgsql-general@postgresql.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
Public strConnection As String
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
' *********************************************
' 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
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
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_;"
Set qdf = db.CreateQueryDef("")
qdf.connect = strConnection
strSQL = "SELECT CURRENT_USER AS ""CURRENTUSER"""
qdf.SQL = strSQL
qdf.returnsrecords = True
Set rs = qdf.openrecordset()
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
Call RelinkLinkedTables(SERVER, DATABASE)
Call RelinkPassThroughQueries
Exit Function
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
----- Original Message -----From: Merlin MoncureTo: Zlatko MaticSent: Thursday, October 20, 2005 2:06 PMSubject: Re: [ODBC] versions of oDBC driverwhy 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@postgresql.org [mailto:pgsql-odbc-owner@postgresql.org] On Behalf Of "Zlatko Matic"
Sent: Thursday, October 20, 2005 6:34 AM
To: pgsql-odbc@postgresql.org; pgsql-interfaces@postgresql.org; pgsql-general@postgresql.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
Can you check server log for the exact error? If you are running windows server, this is in the Application portion of the event log. Maybe your pg_hba.conf is improperly set up. If there is no error there, try connecting via shell using similar login parameters and see what happens.
Merlin
From: "Zlatko Matić" [mailto:zlatko.matic1@sb.t-com.hr]
Sent: Thursday, October 20, 2005 3:34 PM
To: Merlin Moncure
Cc: pgsql-odbc@postgresql.org
Subject: Re: [ODBC] versions of oDBC driver
Importance: High
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:
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 confirmationbutton, a function "ConnectionToServer" is executed to: a) create connection string, b) to check whether connectionstring works, c) to call functions for relinking linked tables and adjusting connection string in pass-throughqueries. 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@postgresql.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 usingdeclare/fetch (see archives). > > > > Merlin > > > > > ------------------------------------------------------------------------------ > > From: pgsql-odbc-owner@postgresql.org [mailto:pgsql-odbc-owner@postgresql.org] On Behalf Of "Zlatko Matic" > Sent: Thursday, October 20, 2005 6:34 AM > To: pgsql-odbc@postgresql.org; pgsql-interfaces@postgresql.org; pgsql-general@postgresql.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 >
Attachment
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.campbell@us.michelin.com> To: "Zlatko Matić" <zlatko.matic1@sb.t-com.hr> Cc: <merlin.moncure@rcsonline.com>; <pgsql-odbc@postgresql.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@postgresql.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@postgresql.org > [mailto:pgsql-odbc-owner@postgresql.org] On Behalf Of "Zlatko Matic" > Sent: Thursday, October 20, 2005 6:34 AM > To: pgsql-odbc@postgresql.org; pgsql-interfaces@postgresql.org; > pgsql-general@postgresql.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@postgresql.org so that your message can get through to the mailing list cleanly
> 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 [snip] I'm afraid I have to agree with you. So how do we go about solving this problem? :) Merlin