Search Postgresql Archives

Re: [ODBC] versions of oDBC driver

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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@xxxxxxxxxxxxxxx>
To: "Zlatko Matić" <zlatko.matic1@xxxxxxxxxxx>
Cc: <merlin.moncure@xxxxxxxxxxxxx>; <pgsql-odbc@xxxxxxxxxxxxxx>
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@xxxxxxxxxxxxxx
  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@xxxxxxxxxxxxxx [mailto:pgsql-odbc-owner@xxxxxxxxxxxxxx] On Behalf Of "Zlatko Matic"
  Sent: Thursday, October 20, 2005 6:34 AM
To: pgsql-odbc@xxxxxxxxxxxxxx; pgsql-interfaces@xxxxxxxxxxxxxx; pgsql-general@xxxxxxxxxxxxxx
  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@xxxxxxxxxxxxxx so that your
      message can get through to the mailing list cleanly


---------------------------(end of broadcast)---------------------------
TIP 4: Have you searched our list archives?

              http://archives.postgresql.org


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Postgresql Jobs]     [Postgresql Admin]     [Postgresql Performance]     [Linux Clusters]     [PHP Home]     [PHP on Windows]     [Kernel Newbies]     [PHP Classes]     [PHP Books]     [PHP Databases]     [Postgresql & PHP]     [Yosemite]
  Powered by Linux