pg.ddx.io  pgsql-interfaces@postgresql.org mailing list archive  
help / color / mirror / Atom feed
From: George Henry C. Daswani <gdaswani@odc.net>
To: pgsql-interfaces@postgresql.org
Subject: perl_ODBC access of 6.4.2
Date: Sat, 5 Jun 1999 18:46:09 -0700
Message-ID: <004501beafbe$5a9f7800$0a01a8c0@portalworks.com> (raw)

Hello,

    I've done so..  My devel box is RedHat Linux 6.0 and I used iodbc from
http://www.openlinksw.com/iodbc - downloaded source and compiled it using

configure --prefix=/opt/iodbc --with-iodbc-inidir=/etc
make ; make install

logged in as user postgres with a home dir of /opt/pgsql

then I downloaded the latest postgresql 6.5 snapshot from ftp.postgresql.org
untar-gzipped it (pgsql)

grabbed http://www.insightdist.com/psqlodbc/latest/postsrc.zip

and unzipped it's contents to pgsq/src/interfaces/odbc

then did a

configure --prefix=/opt/pgsql --with-odbc --with-odbcinst=/opt/pgsql
make ; make install

logged in as root

added "/opt/iodbc/lib" to my /etc/ld.so.conf
and "/opt/pgsql/lib" to my /etc/ld.so.conf
did an ldconfig -v

added the following to my /etc/profile.d directory with 755 permisions
root:root
----------- postgresql.sh ---------------------
#!/bin/sh
PGDIR=/opt/pgsql
PGLIB=${PGDIR}/lib
PGDATA=${PGDIR}/data

export PGLIB PGDATA

echo ${PATH} | grep -e "${PGDIR}/bin" > /dev/null 2>&1
if [ "$?" -eq "1" ] ; then
        PATH=$PATH:${PGDIR}/bin
        export PATH
fi

echo ${LD_LIBRARY_PATH} | grep -e "${PGDIR}/lib" > /dev/null 2>&1
if [ "$?" -eq "1" ] ; then
        LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${PGDIR}/lib
        export LD_LIBRARY_PATH
fi

echo ${MANPATH} | grep -e "${PGDIR}/man" > /dev/null 2>&1
if [ "$?" -eq "1" ] ; then
        MANPATH=${MANPATH}:${PGDIR}/man
        export MANPATH
fi
------------------------ CUT HERE ---------------------------
create an ~/odbc.ini file containing
[DataSources]
template1 = Template Database

[template1]
Description = Template Database on PostgreSQL Server Centauri
Driver = /opt/pgsql/lib/libpsqlodbc.so
Servername = centauri
Port = 5432
Database = template1
Protocol = 6.4
ReadOnly = Off
-------------------------------------------
logged in as a postgres user
then made sure postmaster was started with the -i option, and the
pg_hba.conf allowed
connections from my subnet
host    all    207.137.42.0    255.255.255.0    password

then did
psql template1
alter user postgres with password "pick.your.own.password";
quit

logged in as root
ftp'd DBI-1.08
did a perl Makefile.PL

ftp'd DBD-ODBD-0.20
export DBI_DSN="dbi:ODBC:template1"
export DBI_USER="postgres"
export DBI_PASS="pick.your.own.password"
did a "perl Makefile.PL -o /opt/iodbc"

vi'd Makefile
and appended
-L/opt/iodbc/lib -liodbc to "LDDFLAGS"
and appended
-I/opt/iodbc/include to "INC"

vi'd the file "dbdodbc.h"
and changed
#include <sql.h> -> <isql.h>
#include <sqlext.h> -> <isqlext.h>

did a "make ; make test (one test will fail) then ; make install"

wala, was able to use DBD-ODBC with postgresql..
Just make sure your ~/.odbc.ini is setup correctly ( the current *.ini
parsing
function GetPrivateProfileString IS EXTREMELY BUGGY! so if it core's
it's just that blasted Function call - i'm planning on ripping the iodbc ini
parsing functions
and replacing GetPrivateProfileString with it )
and that postmaster on the server allows socket connections and that a
password has been set on the user account or db you are trying to connect
to..

*NOTE* I also tried unixODBC 1.04 from http://www.genix.net/unixODBC and
used the postgres odbc driver that came with it, it coredumps on the perl
DBD:ODBC make test so I didn't want to use it..  I also compiled these
packages on solaris x86 2.7 - compiles okay and somehow works, but it's also
coredumps from time to time - seems to be alot more stable on linux..


George Daswani

------------------ - ORIGINAL ---------------------------------------

(Yes, I know that there is a DBD/DBI interface for Postgres, but the
project spec says ODBC)

I have a client that wants me to program perl code using ODBC for data
access.  And the target database to talk to is PostgreSQL 6.4.2

Has anyone ever gotten DBD-ODBC-0.20 to interface with PostgreSQL?









view thread (5+ messages)  latest in thread

Message-ID: <004501beafbe$5a9f7800$0a01a8c0@portalworks.com>
Permalink:  ../004501beafbe$5a9f7800$0a01a8c0@portalworks.com/
Also on:    postgresql.org/message-id/004501beafbe$5a9f7800$0a01a8c0@portalworks.com

 · 

reply

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Reply to all the recipients using the --to and --cc options:
  reply via email

  To: pgsql-interfaces@postgresql.org
  Cc: gdaswani@odc.net
  Subject: Re: perl_ODBC access of 6.4.2
  In-Reply-To: <004501beafbe$5a9f7800$0a01a8c0@portalworks.com>

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

This inbox is served by DDX for PostgreSQL; see mirroring instructions
for how to clone and mirror all data and code used for this inbox