[DB-SIG] Re: oracle db module status

Richard Jones richard.jones@fulcrum.com.au
Fri, 04 Dec 1998 10:17:11 +1100


[cross-posted to DB-SIG, in case someone there cares. I don't subscribe to 
DB-SIG though, so please CC me any relevant followups]

[Aaron_Watters@my-dejanews.com]
>   richard.jones@fulcrum.com.au wrote:
> >     I need an interface to Oracle 8, and am finding that most of the oracle
> > modules out there (except the Digicool one, but I don't have the option of
> > paying for it) are a little out of date with respect to Oracle 8.
> 
> I've used the oracledb module (the freebie) from digicool
> with oracle 8, and after the horrible fight to get it linked
> it seemed to work without a problem.  I also know someone
> who is using Anthony Baxter's version and it seems to work
> good for him. 

    Well, to expand a little on the post I made... I have Anthony Baxter's 
oracledb module linked fine with 8.0.5 now. I patched the Makefile to include 
${ORACLE_HOME}/rdbms/lib/env_rdbms.mk and then linked with ${TTLIBS}. My 
problem was that my test select wasn't working properly. After investigating 
further, I find that a "select * from tab" only returns a row at a time when 
fetchall()'ed, but a regular table that I make will return all rows on a 
fetchall(). This is all a bit dodgy, and may result in the killing of Python 
from the project I'm working on.

   Now for the icky bit... looking in the 8.0.4 documentation for OCI, I find 
that all the functions used in oracledb are now deprecated. *sigh*


> Conceivably (dunno) it should be possible to
> use M.A.Lemburg's mxODBC or (on win32) Bill Tutt's odbc module
> or, if you diverge from Greg Stein's dbapi, Sam Rushing's
> more direct odbc binding too on win32.  Dunno if this helps.
> It's all very confusing.

    ODBC isn't an option, unfortunately.


> The problem with diversity is it's so diverse, when all
> you wanna do is get the job done!  I think I posted a makefile
> for oracle8/oracledbmodule to the dbsig many months ago.

    Well, here's the snippet that works for me: this is the last few lines of 
the Makefile...

include ${ORACLE_HOME}/rdbms/lib/env_rdbms.mk
oradbmodule.o: $(srcdir)/oradbmodule.c; $(CC) $(CCSHARED) $(CFLAGS)  -I. -I. -c
$(srcdir)/oradbmodule.c
dbi.o: $(srcdir)/dbi.c; $(CC) $(CCSHARED) $(CFLAGS)  -I. -I. -c $(srcdir)/dbi.c
oracledbmodule$(SO):  oradbmodule.o dbi.o; $(LDSHARED)  oradbmodule.o dbi.o  -L$
{ORACLE_HOME}/lib ${TTLIBS} -lsocket -lgen -ldl -lc -laio -lm -o oracledbmodule$
(SO)

    (Note that the oradbmodule.o, dbi.o and oracledbmodule$(SO) lines should be 
1 line - but my mail program might break them)



       Richard

-- 
Richard Jones,  developer for the Fulcrum Consulting Group.   (03) 9621 2100 
http://www.fulcrum.com.au/         http://alumni.dgs.monash.edu.au/~richard/