Thanks! Tim.
On Thu, Sep 25, 2003 at 10:11:20AM +0200, Steffen Goeldner wrote: > Tim Bunce wrote: > > > > On Wed, Sep 24, 2003 at 11:24:17AM +0200, Steffen Goeldner wrote: > > > [...] > > > > > dmake > > > ... > > > Turbo Incremental Link 5.00 Copyright (c) 1997, 2000 Borland > > > Error: Unresolved external '_SQLEnvGet' referenced from > > > C:\TEMP\DBD-ORACLE-1.15\DBDIMP.OBJ > > > Error: Unresolved external '_SQLSvcCtxGet' referenced from > > > C:\TEMP\DBD-ORACLE-1.15\DBDIMP.OBJ > > > > If you (or someone else) are familar enough with windows, could you > > check if those symbols are in some other oracle library that we're > > not linking with? > > > > (Otherwise you could just remove the if(use_proc_connection){...} blocks > > so you can continue testing the rest of the code.) > > O.k., to continue I added an option for Makefile.PL and some #ifdef's in > dbdimp.c. I'm not sure if this option (and its name) is a good idea. Thus > I try to find those symbols and the library ... > > > Steffen > diff -cb DBD-Oracle-1.15-orig/Makefile.PL DBD-Oracle-1.15/Makefile.PL > *** DBD-Oracle-1.15-orig/Makefile.PL Tue Sep 23 00:31:19 2003 > --- DBD-Oracle-1.15/Makefile.PL Wed Sep 24 20:39:07 2003 > *************** > *** 84,92 **** > $::opt_f = 0; # include text of oracle's .mk file within generated Makefile > $::opt_F = 0; # force - ignore errors > $::opt_W = 0; # just write a basic default Makefile (won't build) > > Getopt::Long::config( qw( no_ignore_case ) ); > ! GetOptions(qw(b! v! d! g! p! l! c! 8! f! F! W! m=s n=s s=s S=s)) > or die "Invalid arguments"; > > $::opt_g &&= '-g'; # convert to actual string > --- 84,93 ---- > $::opt_f = 0; # include text of oracle's .mk file within generated Makefile > $::opt_F = 0; # force - ignore errors > $::opt_W = 0; # just write a basic default Makefile (won't build) > + $::opt_ProC = 1; # use ProC > > Getopt::Long::config( qw( no_ignore_case ) ); > ! GetOptions(qw(b! v! d! g! p! l! c! 8! f! F! W! m=s n=s s=s S=s ProC!)) > or die "Invalid arguments"; > > $::opt_g &&= '-g'; # convert to actual string > *************** > *** 581,586 **** > --- 582,589 ---- > > $opts{DEFINE} .= ' -Xa' if $Config{cc} eq 'clcc'; # CenterLine CC > > + $opts{DEFINE} .= ' -DHAVE_NO_PRO_C' unless $::opt_ProC; > + > if ($::opt_8) { > $opts{DEFINE} .= ' -DNO_OCI8'; > print "\n******************************************************\n"; > Common subdirectories: DBD-Oracle-1.15-orig/Oracle.ex and DBD-Oracle-1.15/Oracle.ex > diff -cb DBD-Oracle-1.15-orig/dbdimp.c DBD-Oracle-1.15/dbdimp.c > *** DBD-Oracle-1.15-orig/dbdimp.c Thu Jun 12 01:04:35 2003 > --- DBD-Oracle-1.15/dbdimp.c Wed Sep 24 20:44:11 2003 > *************** > *** 17,23 **** > #include "Oracle.h" > > /* #include <sql2oci.h> for SQL_SINGLE_RCTX but causes clashes */ > ! #if !defined(SQL_SINGLE_RCTX) && defined(OCI_V8_SYNTAX) > #define SQL_SINGLE_RCTX (dvoid *)0 /* from precomp/public/sqlcpr.h */ > #endif > > --- 17,23 ---- > #include "Oracle.h" > > /* #include <sql2oci.h> for SQL_SINGLE_RCTX but causes clashes */ > ! #if !defined(SQL_SINGLE_RCTX) && defined(OCI_V8_SYNTAX) && !defined(HAVE_NO_PRO_C) > #define SQL_SINGLE_RCTX (dvoid *)0 /* from precomp/public/sqlcpr.h */ > #endif > > *************** > *** 321,328 **** > init_mode |= OCI_THREADED; > #endif > > - #ifdef SQL_SINGLE_RCTX > if(use_proc_connection) { > /* Use existing SQLLIB connection. Do not call OCIInitialize(), */ > /* since presumably SQLLIB already did that. */ > status = SQLEnvGet(SQL_SINGLE_RCTX, &imp_drh->envhp); > --- 321,328 ---- > init_mode |= OCI_THREADED; > #endif > > if(use_proc_connection) { > + #ifdef SQL_SINGLE_RCTX > /* Use existing SQLLIB connection. Do not call OCIInitialize(), */ > /* since presumably SQLLIB already did that. */ > status = SQLEnvGet(SQL_SINGLE_RCTX, &imp_drh->envhp); > *************** > *** 332,340 **** > "SQLEnvGet. Failed to load ProC environment."); > return 0; > } > } > else { /* Normal connect. */ > - #endif /* SQL_SINGLE_RCTX*/ > > imp_drh->proc_handles = 0; > /* XXX recent oracle docs recommend using OCIEnvCreate() instead of */ > --- 332,340 ---- > "SQLEnvGet. Failed to load ProC environment."); > return 0; > } > + #endif /* SQL_SINGLE_RCTX*/ > } > else { /* Normal connect. */ > > imp_drh->proc_handles = 0; > /* XXX recent oracle docs recommend using OCIEnvCreate() instead of */ > *************** > *** 356,361 **** > --- 356,362 ---- > if (shared_dbh_ssv) { > if (!imp_dbh->envhp) { > if(use_proc_connection) { > + #ifdef SQL_SINGLE_RCTX > status = SQLEnvGet(SQL_SINGLE_RCTX, &imp_dbh->envhp); > imp_dbh->proc_handles = 1; > if (status != SQL_SUCCESS) { > *************** > *** 363,368 **** > --- 364,370 ---- > "SQLEnvGet. Failed to load ProC environment."); > return 0; > } > + #endif /* SQL_SINGLE_RCTX*/ > } > else { > OCIEnvInit_log_stat( &imp_dbh->envhp, OCI_DEFAULT, 0, 0, status); > *************** > *** 382,387 **** > --- 384,390 ---- > > if (!shared_dbh) { > if(use_proc_connection) { > + #ifdef SQL_SINGLE_RCTX > imp_dbh->proc_handles = 1; > status = SQLSvcCtxGet(SQL_SINGLE_RCTX, dbname, strlen(dbname), > &imp_dbh->svchp); > *************** > *** 408,413 **** > --- 411,417 ---- > OCIHandleFree_log_stat(imp_dbh->errhp, OCI_HTYPE_ERROR, status); > return 0; > } > + #endif /* SQL_SINGLE_RCTX*/ > } > else { /* !use_proc_connection */ > imp_dbh->proc_handles = 0; > Common subdirectories: DBD-Oracle-1.15-orig/hints and DBD-Oracle-1.15/hints > Common subdirectories: DBD-Oracle-1.15-orig/lib and DBD-Oracle-1.15/lib > Common subdirectories: DBD-Oracle-1.15-orig/t and DBD-Oracle-1.15/t