Re: DBD::Oracle beta available for testing

2003-09-26 Thread Steffen Goeldner
Tim Bunce wrote:
 
 On Thu, Sep 25, 2003 at 12:39:05PM +0200, Steffen Goeldner wrote:
  Steffen Goeldner wrote:
  
   [...]
  
   I try to find those symbols and the library ...
 
  Thanks to Andy Hassall, I found the symbols in orasql8.dll.
  I did not install Pro*C and have a $ORACLE_HOME/precomp
  but no $ORACLE_HOME/precomp/lib (and no orasql8.lib).
 
 Er, so how did you find the symbols in orasql8.dll then?

The orasql8.dll is in $ORACLE_HOME/bin. You can see all exported
symbols with e.g. 'Quick View' or Borland's IMPDEF:

LIBRARY ORASQL8.DLL

EXPORTS
DSNTIAR@1   ; DSNTIAR
...
SQLEnvGet  @15  ; SQLEnvGet
...
 
 
[...]
  2) Import via .def file, e.g.:
 
  $opts{IMPORTS} = {
_SQLEnvGet= 'orasql8.SQLEnvGet',
_SQLSvcCtxGet = 'orasql8.SQLSvcCtxGet'
  } if $os eq 'MSWin32'  $Config{cc} eq 'bcc32';  # Borland CC
 
 Does that work for you?

Yes, DBD-Oracle-1.15/Oracle.def now contains:

LIBRARY Oracle
EXPORTS
  _boot_DBD__Oracle
  boot_DBD__Oracle = _boot_DBD__Oracle
  
IMPORTS
  _SQLEnvGet=orasql8.SQLEnvGet
  _SQLSvcCtxGet=orasql8.SQLSvcCtxGet

 And for other compilers?

There may be an '_' issue with other compilers/linkers.

 Wouldn't orasql8.dll still need to be installed and listed on the
 linker command line?

The orasql8.dll is installed - at least on my 'small' (82.9MB)
Oracle 8.1.7 client installation.
The linker needs either a .lib or .def file.

  (There is an empty! 'Oracle 817 Production.rgs' in my
  $OH/ORAINST directory. I don't know how portable that is.)
 
 There might be a version number in the registry.

That's not really better, see attachment.

 But since *very* few people would need the ability to
 share database connections with ProC/SQLLIB code my preference
 right now is to just disable it entirely on Windows and
 only enable it on other platforms for Oracle = 9.0.

That's o.k. for me.


Steffen

Oracle.reg
Description: application/unknown-content-type-regfile


Re: DBD::Oracle beta available for testing

2003-09-25 Thread Tim Bunce
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) {
 ***
 *** 

Re: DBD::Oracle beta available for testing

2003-09-25 Thread Steffen Goeldner
Tim Bunce wrote:
 
 Is it an alpha or a beta? Who knows? Probably more alpha than beta
 but it it what it is and you're welcome to hit on it.

Perl 5.6.1, MSWin32, Borland 5.5, Oracle 8.1.7

dmake test:

t\base...ok
t\cursor.ok
t\generalok
t\long...ok 53/372# failed test 60 at line 328.
t\long...ok 58/372# failed test 68 at line 328.
t\long...ok 62/372# failed test 76 at line 328.
t\long...ok 70/372# failed test 86 at line 342.
# failed test 88 at line 342.
t\long...ok 79/372# failed test 90 at line 342.
t\long...ok 145/372# failed test 153 at line 328.
t\long...ok 147/372# failed test 161 at line 328.
t\long...ok 155/372# failed test 169 at line 328.
t\long...ok 163/372# failed test 179 at line 342.
# failed test 181 at line 342.
t\long...ok 171/372# failed test 183 at line 342.
t\long...ok 343/372
Some tests for LONG data type handling failed. These are generally Oracle bugs.
Please report this to the dbi-users mailing list, and include the
Oracle version number of both the client and the server.
Please also include the output of the 'perl -V' command.
(If you can, please study t/long.t to investigate the cause.
Feel free to edit the tests to see what's happening in more detail.
Especially by adding trace() calls around the failing tests.
Run the tests manually using the command perl -Mblib t/long.t)
Meanwhile, if the other tests have passed you can use DBD::Oracle.

t\long...dubious
Test returned status 4 (wstat 1024, 0x400)
DIED. FAILED tests 60, 68, 76, 86, 88, 90, 153, 161, 169, 179, 181, 183
Failed 12/372 tests, 96.77% okay
t\meta...ok
t\ph_typeok
t\plsql..ok
t\reauth.skipped test on this platform
t\select.ok
Failed Test Stat Wstat Total Fail  Failed  List of Failed
---
t\long.t   4  1024   372   12   3.23%  60 68 76 86 88 90 153 161 169 179
   181 183
1 test skipped.
Failed 1/9 test scripts, 88.89% okay. 12/1490 subtests failed, 99.19% okay.
dmake.exe:  Error code 32, while making 'test_dynamic'

--

Verbose output for t/long attached. Hints welcome!

BTW: I have a core dump after the last test. If I add
an '$dbh-disconnect;' to the END {}, it says

  t\longok 372/372DBI::db=HASH(0x180be8c)-disconnect
invalidates 5 active statement handles (either destroy
statement handles or call finish on them before
disconnecting) at t\long.t line 380.

and still crashes ...


SteffenUsing C:/temp/DBD-Oracle-1.15/blib
t\longcreate table dbd_ora__drop_me ( idx integer, lng LONG, dt date )
1..372
long_data0 length 10240
long_data1 length 81920
long_data2 length 71680
create table dbd_ora__drop_me ( idx integer, lng BLOB, dt date )
 --- insert some BLOB data (ora_type 113)
ok 1
ok 2
ok 3
ok 4
ok 5
 --- fetch BLOB data back again -- truncated - LongTruncOk == 1
LongReadLen 20, LongTruncOk 1
ok 6
ok 7
ok 8
ok 9
ok 10
ok 11
ok 12
ok 13
 --- fetch BLOB data back again -- truncated - LongTruncOk == 0
LongReadLen 81910, LongTruncOk
ok 14
ok 15
ok 16
ok 17
ok 18
ok 19
 --- fetch BLOB data back again -- complete - LongTruncOk == 0
LongReadLen 82920, LongTruncOk
ok 20
ok 21
ok 22
ok 23
ok 24
ok 25
ok 26
ok 27
 --- fetch BLOB data back again -- via blob_read
ok 28
ok 29
ok 30
ok 31
ok 32
ok 33
ok 34
ok 35
ok 36
ok 37
ok 38
 --- testing ora_auto_lob to access BLOB LobLocator
ok 39
40: OCILobLocatorPtr=SCALAR(0x22ad698)
ok 40
ok 41
ok 42
ok 43
41: OCILobLocatorPtr=SCALAR(0x22ad6bc)
ok 44
ok 45
ok 46
ok 47
42: OCILobLocatorPtr=SCALAR(0x22ad698)
ok 48
# failed test 60 at line 328.
ok 49
ok 50
ok 51
43: undef
ok 52
40 locator: OCILobLocatorPtr=SCALAR(0x22ad698)
ok 53
ok 54
# failed test 68 at line 328.
40 content: '040 foo!.X0.x.X0.x.X'
ok 55
ok 56
ok 57
ok 58
ok 59
not ok 60
error: ORA-24801: illegal parameter value in OCI lob function (DBD ERROR: 
OCILobWriteAppend)
41 locator: OCILobLocatorPtr=SCALAR(0x22ad6bc)
ok 61
ok 62
# failed test 76 at line 328.
41 content: '041 foo!901234567890'
ok 63
ok 64
ok 65
ok 66
ok 67
not ok 68
error: ORA-24801: illegal parameter value in OCI lob function (DBD ERROR: 
OCILobWriteAppend)
42 locator: OCILobLocatorPtr=SCALAR(0x22ad698)
ok 69
ok 70
42 content: '042 foo!cd2bcdefabcd'
# failed test 86 at line 342.
# failed test 88 at line 342.
ok 71
ok 72
ok 73
ok 74
ok 75
not ok 76
error: ORA-24801: illegal parameter value in OCI lob function (DBD ERROR: 
OCILobWriteAppend)
43 locator: undef
ok 77
ok 78
ok 79
ok 80
# failed test 90 at line 342.
ok 81
ok 82
ok 83
round again to check the length...
ok 84
40 locator: OCILobLocatorPtr=SCALAR(0x22ad728)
ok 85
not ok 86
41 locator: OCILobLocatorPtr=SCALAR(0x22ad6bc)
ok 87
not ok 88
42 locator: OCILobLocatorPtr=SCALAR(0x22ad728)
ok 89
not ok 90
43 locator: undef
ok 91
ok 92
ok 93
long_data0 length 10240
long_data1 length 81920
long_data2 length 71680
create table dbd_ora__drop_me ( idx integer, lng CLOB, dt date )
 --- 

Re: DBD::Oracle beta available for testing

2003-09-25 Thread Steffen Goeldner
Steffen Goeldner wrote:

 Perl 5.6.1, MSWin32, Borland 5.5, Oracle 8.1.7

[...]
 
 error: ORA-24801: illegal parameter value in OCI lob function (DBD ERROR: 
 OCILobWriteAppend)

Metalink lists such an error as Bug #886191, fixed
in 8.1.7. Hmmm.


Steffen


Re: DBD::Oracle beta available for testing

2003-09-25 Thread Tim Bunce
On Thu, Sep 25, 2003 at 04:09:57PM +0200, Steffen Goeldner wrote:
 Steffen Goeldner wrote:
 
  Perl 5.6.1, MSWin32, Borland 5.5, Oracle 8.1.7
 
 [...]
  
  error: ORA-24801: illegal parameter value in OCI lob function (DBD ERROR: 
  OCILobWriteAppend)
 
 Metalink lists such an error as Bug #886191, fixed
 in 8.1.7. Hmmm.

Hmm indeed :-)

Tim.


Re: DBD::Oracle beta available for testing

2003-09-25 Thread Tim Bunce
On Thu, Sep 25, 2003 at 12:39:05PM +0200, Steffen Goeldner wrote:
 Steffen Goeldner wrote:
  
  [...]
 
  I try to find those symbols and the library ...
 
 Thanks to Andy Hassall, I found the symbols in orasql8.dll.
 I did not install Pro*C and have a $ORACLE_HOME/precomp
 but no $ORACLE_HOME/precomp/lib (and no orasql8.lib).

Er, so how did you find the symbols in orasql8.dll then?

 Even if, Borland C++ is no longer supported:
 
   http://my.kharkov.org/docs/oracle/nt.816/a73023/ch1.htm#1660
 
 I see 2 options:
 
 1) Make an orasql8.lib:
 
  implib -a ORASQL8 /Oracle/Ora81/bin/ORASQL8.DLL
 
and add it to $opts{LIBS} in Makefile.PL.
 
 2) Import via .def file, e.g.:
 
 $opts{IMPORTS} = {
   _SQLEnvGet= 'orasql8.SQLEnvGet',
   _SQLSvcCtxGet = 'orasql8.SQLSvcCtxGet'
 } if $os eq 'MSWin32'  $Config{cc} eq 'bcc32';  # Borland CC

Does that work for you? And for other compilers?
Wouldn't orasql8.dll still need to be installed and listed on the
linker command line?

 The remaining question is: how to find out the correct
 version number? Maybe something like that:
 
   if ( $os eq 'MSWin32' ) {
 for ( glob $OH/ORAINST/*.rgs) {
   my $rgs = substr $_, length $OH/ORAINST/;
   $rgs =~ /(\d)(\d)(\d)/;
   $inspdver{RDBMS} = join '.', $1, $2, $3;
 }
   }
 
 (There is an empty! 'Oracle 817 Production.rgs' in my
 $OH/ORAINST directory. I don't know how portable that is.)

There might be a version number in the registry.

But since *very* few people would need the ability to
share database connections with ProC/SQLLIB code my preference
right now is to just disable it entirely on Windows and
only enable it on other platforms for Oracle = 9.0.

Tim.


Re: DBD::Oracle beta available for testing

2003-09-25 Thread Andy Hassall
Tim Bunce wrote:
 On Wed, Sep 24, 2003 at 10:27:02PM +0100, Andy Hassall wrote:

 Adding D:/oracle/ora92/precomp/lib/MSVC/oraSQL9.LIB to that link.exe
 command makes it link OK - and tests pass (except the usual trailing
 space one):

 Great. Thanks. Any chance you could send me a patch to Makefile.PL?

Attached patch does a version and compiler search similar to the one done
for the OCI libraries.

(Although the way this, and the OCI search, does the sort may have to be
revised when 10G is released, if they keep the same library naming
convention; oci10.lib will sort after oci9.lib - but then again, do Oracle
homes ever have both libraries present? I assume at some point they did
which is why the code's there in the first place?)

Probably needs to take into account the option Steffen added as well?
(patch is against Makefile.PL after Steffen's patch applied, but there's no
overlaps so it applies to the original beta version too)

With patch, compiles+links OK on Windows 2000, Microsoft VC++ 6.0SP5, with
following client versions:

9.2.0.4
8.1.7.0
8.1.7.4

8i was installed as Client, using the Custom option, cutting it down to
basically just Net8 support and Pro*C.

Tests were done against a 9.2.0.4 database; I've only got the client bit of
8.1 installed, haven't got a database handy.

With client version 8.1.7.[0,4], but not 9.2.0.4, the long test fails as
Steffen described:

Failed 1/9 test scripts, 88.89% okay. 12/1530 subtests failed, 99.22% okay.
Failed Test Stat Wstat Total Fail  Failed  List of Failed

---
t\long.t 372   12   3.23%  60 68 76 86 88 90 153 161 169 179
   181 183
-- 
Andy Hassall ([EMAIL PROTECTED]) icq(5747695) (http://www.andyh.co.uk)
Space: disk usage analysis tool (http://www.andyhsoftware.co.uk/space)


DBD-Oracle-1.15-Makefile.PL.diff
Description: Binary data


Re: DBD::Oracle beta available for testing

2003-09-25 Thread Kristian Nielsen
Tim Bunce [EMAIL PROTECTED] writes:

 But since *very* few people would need the ability to
 share database connections with ProC/SQLLIB code my preference

Yes, I agree, I implemented this because I wanted to migrate a large
ProC based codebase gradually to using Perl/DBI, so I am embedding Perl
in a ProC-based application. Few people would ever find themselves in
this unfortunate situation, and if they did, having to slightly tweak
the DBD::Oracle build would be the least of their problems.

 right now is to just disable it entirely on Windows and
 only enable it on other platforms for Oracle = 9.0.

Hm, I *think* that I had this running on 8.1.7 before we upgraded to
Oracle 9. Not absolutely sure though.

Sorry that I cannot help with the Windows part, but I do not have
access to a Windows Oracle development environment.

 - Kristian.

-- 
Kristian Nielsen   [EMAIL PROTECTED]
Development Manager, Sifira A/S



RE: DBD::Oracle beta available for testing

2003-09-24 Thread Jeff Urlwin
 
 
 On Wed, Sep 24, 2003 at 11:24:17AM +0200, Steffen Goeldner wrote:
  Tim Bunce wrote:
   
   Is it an alpha or a beta? Who knows? Probably more alpha 
 than beta 
   but it it what it is and you're welcome to hit on it.
  
  Perl 5.6.1, MSWin32, Borland 5.5, Oracle 8.1.7
  
  Makefile.PL
  
Use of uninitialized value in numeric ge (=) at 
  C:\temp\DBD-Oracle-1.15\Makefile.PL line 678.
 
 Got it.
 
  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?

Tim -- I don't see an obvious lib to link with that contains any SQLxxx
functions (at least not on my Windows 9.2 Personal Edition).


Regards,

Jeff




Re: DBD::Oracle beta available for testing

2003-09-24 Thread Andy Hassall
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?

Those symbols are part of SQLLIB:

http://download-west.oracle.com/docs/cd/B10501_01/appdev.920/a97269/pc_01int.htm#1174

$ORACLE_HOME/precomp/lib/oraSQL9.LIB has those symbols (and the other
version in the msvc subdirectory):

[EMAIL PROTECTED] /cygdrive/d/Oracle/ora92/precomp/lib
$ nm oraSQL9.LIB  | grep SQLSvcCtxGet
 T _SQLSvcCtxGet
 I __imp__SQLSvcCtxGet

[EMAIL PROTECTED] /cygdrive/d/Oracle/ora92/precomp/lib
$ nm oraSQL9.LIB  | grep SQLEnvGet
 T _SQLEnvGet
 I __imp__SQLEnvGet

[EMAIL PROTECTED] /cygdrive/d/Oracle/ora92/precomp/lib/msvc
$ nm oraSQL9.LIB  | grep SQLEnvGet
 T _SQLEnvGet
 I __imp__SQLEnvGet

[EMAIL PROTECTED] /cygdrive/d/Oracle/ora92/precomp/lib/msvc
$ nm oraSQL9.LIB  | grep SQLSvcCtxGet
 T _SQLSvcCtxGet
 I __imp__SQLSvcCtxGet


-- 
Andy Hassall ([EMAIL PROTECTED]) icq(5747695) (http://www.andyh.co.uk)
Space: disk usage analysis tool (http://www.andyhsoftware.co.uk/space)



Re: DBD::Oracle beta available for testing

2003-09-24 Thread Tim Bunce
On Wed, Sep 24, 2003 at 08:08:51PM +0100, Andy Hassall 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?
 
 Those symbols are part of SQLLIB:
 
 http://download-west.oracle.com/docs/cd/B10501_01/appdev.920/a97269/pc_01int.htm#1174
 
 $ORACLE_HOME/precomp/lib/oraSQL9.LIB has those symbols (and the other
 version in the msvc subdirectory):

Okay. You're using Oracle 9.x but Steffen was using Oracle 8.1.7.

I know the code that uses those symbols isn't properly #ifdef'd
out on older versions of Oracle so I need to fix that.

But I also need to know if DBD::Oracle builds okay on Windows
for Oracle 9.x users. Does it? If not then I presume the problem
is that we need to link to oraSQL9.LIB. Does that fix it?

If DBD::Oracle does work ok on windows with Oracle 9.c then I'm
just left with the problem of working out a) the oldest Oracle
version that supports SQLEnvGet etc, and b) how to tell that
version from the header files (sadly Oracle doesn't provide a
simple way to do that).

Tim.


Re: DBD::Oracle beta available for testing

2003-09-24 Thread Andy Hassall
Tim Bunce wrote:
 On Wed, Sep 24, 2003 at 08:08:51PM +0100, Andy Hassall 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?

 Those symbols are part of SQLLIB:


http://download-west.oracle.com/docs/cd/B10501_01/appdev.920/a97269/pc_01int.htm#1174

 $ORACLE_HOME/precomp/lib/oraSQL9.LIB has those symbols (and the other
 version in the msvc subdirectory):

 Okay. You're using Oracle 9.x but Steffen was using Oracle 8.1.7.

 I know the code that uses those symbols isn't properly #ifdef'd
 out on older versions of Oracle so I need to fix that.

 But I also need to know if DBD::Oracle builds okay on Windows
 for Oracle 9.x users. Does it? If not then I presume the problem
 is that we need to link to oraSQL9.LIB. Does that fix it?

 If DBD::Oracle does work ok on windows with Oracle 9.c then I'm
 just left with the problem of working out a) the oldest Oracle
 version that supports SQLEnvGet etc, and b) how to tell that
 version from the header files (sadly Oracle doesn't provide a
 simple way to do that).

It also fails building against 9.2.0.4:

[EMAIL PROTECTED] /cygdrive/d/Temp/DBD-Oracle-1.15
$ nmake

Microsoft (R) Program Maintenance Utility   Version 6.00.8168.0
Copyright (C) Microsoft Corp 1988-1998. All rights reserved.

cp Oracle.h blib\arch\auto\DBD\Oracle/Oracle.h
cp Oracle.pm blib\lib\DBD\Oracle.pm
cp oraperl.ph blib\lib/oraperl.ph
cp dbdimp.h blib\arch\auto\DBD\Oracle/dbdimp.h
cp ocitrace.h blib\arch\auto\DBD\Oracle/ocitrace.h
cp Oraperl.pm blib\lib/Oraperl.pm
cp lib/DBD/Oracle/GetInfo.pm blib\lib\DBD/Oracle/GetInfo.pm
cp mk.pm blib\arch\auto\DBD\Oracle/mk.pm
 rem
 rem
D:\Perl\bin\perl.exe -p -e s/~DRIVER~/Oracle/g
d:/Perl/site/lib/auto/DBI/Driver.xst  Oracle.xsi
D:\Perl\bin\perl.exe D:\Perl\lib\ExtUtils/xsubpp  -typemap
D:\Perl\lib\ExtUtils\typemap -typemap typemap  Oracle.xs  Oracle.xsc 
D:\Perl\bin\perl.exe -MExtUtils::Command -e mv Oracle.xsc Oracle.c








cl -c  -ID:/oracle/ora92/oci/include -ID:/oracle/ora92/rdbms/demo -ID:/oracl
e/ora92/precomp/public -Id:/Perl/site/lib/auto/DBI  -nologo -Gf -W3 -MD -Zi 
-DNDEBUG -O1 -DWIN32 -D_CONSOLE -DNO_STRICT -DHAVE_DES_FCRYPT -DPERL_IMPLICI
T_CONTEXT -DPERL_IMPLICIT_SYS -DUSE_PERLIO -DPERL_MSVCRT_READFIX -MD -Zi -DN
DEBUG -O1-DVERSION=\1.15\  -DXS_VERSION=\1.15\
-ID:\Perl\lib\CORE  -DUTF8_SUPPORT Oracle.c
Oracle.c
Oracle.xs(99) : warning C4013: 'ora_st_cancel' undefined; assuming extern
returning int
Oracle.xs(273) : warning C4013: 'dbd_init_oci_drh' undefined; assuming
extern returning int








cl -c  -ID:/oracle/ora92/oci/include -ID:/oracle/ora92/rdbms/demo -ID:/oracl
e/ora92/precomp/public -Id:/Perl/site/lib/auto/DBI  -nologo -Gf -W3 -MD -Zi 
-DNDEBUG -O1 -DWIN32 -D_CONSOLE -DNO_STRICT -DHAVE_DES_FCRYPT -DPERL_IMPLICI
T_CONTEXT -DPERL_IMPLICIT_SYS -DUSE_PERLIO -DPERL_MSVCRT_READFIX -MD -Zi -DN
DEBUG -O1-DVERSION=\1.15\  -DXS_VERSION=\1.15\
-ID:\Perl\lib\CORE  -DUTF8_SUPPORT dbdimp.c
dbdimp.c
dbdimp.c(328) : warning C4013: 'SQLEnvGet' undefined; assuming extern
returning int
dbdimp.c(386) : warning C4013: 'SQLSvcCtxGet' undefined; assuming extern
returning int
dbdimp.c(1100) : warning C4018: '' : signed/unsigned mismatch
dbdimp.c(1641) : warning C4018: '!=' : signed/unsigned mismatch








cl -c  -ID:/oracle/ora92/oci/include -ID:/oracle/ora92/rdbms/demo -ID:/oracl
e/ora92/precomp/public -Id:/Perl/site/lib/auto/DBI  -nologo -Gf -W3 -MD -Zi 
-DNDEBUG -O1 -DWIN32 -D_CONSOLE -DNO_STRICT -DHAVE_DES_FCRYPT -DPERL_IMPLICI
T_CONTEXT -DPERL_IMPLICIT_SYS -DUSE_PERLIO -DPERL_MSVCRT_READFIX -MD -Zi -DN
DEBUG -O1-DVERSION=\1.15\  -DXS_VERSION=\1.15\
-ID:\Perl\lib\CORE  -DUTF8_SUPPORT oci7.c
oci7.c








cl -c  -ID:/oracle/ora92/oci/include -ID:/oracle/ora92/rdbms/demo -ID:/oracl
e/ora92/precomp/public -Id:/Perl/site/lib/auto/DBI  -nologo -Gf -W3 -MD -Zi 
-DNDEBUG -O1 -DWIN32 -D_CONSOLE -DNO_STRICT -DHAVE_DES_FCRYPT -DPERL_IMPLICI
T_CONTEXT -DPERL_IMPLICIT_SYS -DUSE_PERLIO -DPERL_MSVCRT_READFIX -MD -Zi -DN
DEBUG -O1-DVERSION=\1.15\  -DXS_VERSION=\1.15\
-ID:\Perl\lib\CORE  -DUTF8_SUPPORT oci8.c
oci8.c
oci8.c(524) : warning C4018: '' : signed/unsigned mismatch
oci8.c(658) : warning C4013: 'pp_rebind_ph_rset_in' undefined; assuming
extern returning int
oci8.c(738) : warning C4018: '' : signed/unsigned mismatch
oci8.c(819) : warning C4018: '' : signed/unsigned mismatch
oci8.c(889) : warning C4018: '' : signed/unsigned mismatch
oci8.c(891) : warning C4018: '' : signed/unsigned mismatch
oci8.c(1102) : warning C4018: '=' : signed/unsigned mismatch

Re: DBD::Oracle beta available for testing

2003-09-24 Thread Andy Hassall
Tim Bunce wrote:
 On Wed, Sep 24, 2003 at 10:27:02PM +0100, Andy Hassall wrote:

 Adding D:/oracle/ora92/precomp/lib/MSVC/oraSQL9.LIB to that link.exe
 command makes it link OK - and tests pass (except the usual trailing
 space one):

 Great. Thanks. Any chance you could send me a patch to Makefile.PL?

I'll try and put one together tommorrow - haven't got Oracle 8i on this
Windows machine at the moment - and I did the link manually by editing the
link command rather than the makefile.

Presumably it's going to need a similar version sort to the $OCILIB variable
as it'll be oraSQL8.lib on 8i?

FYI 1.15 on Linux / 9.2.0.4 compiles and links, all tests but ph_type pass.

-- 
Andy Hassall ([EMAIL PROTECTED]) icq(5747695) (http://www.andyh.co.uk)
Space: disk usage analysis tool (http://www.andyhsoftware.co.uk/space)