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