in reply to Seemingly Internal DBD-XBase Error

The trace output reminded me that I wasn't using -w because I was simply executing the script using the Windows file extension alias. When I turned that on, I saw the following errors.

Subroutine driver redefined at C:/Perl/lib/DBD/XBase.pm line 32.
Subroutine data_sources redefined at C:/Perl/lib/DBD/XBase.pm line 51.
Subroutine connect redefined at C:/Perl/lib/DBD/XBase.pm line 64.
Subroutine disconnect_all redefined at C:/Perl/lib/DBD/XBase.pm line 78.
Subroutine prepare redefined at C:/Perl/lib/DBD/XBase.pm line 91.
Subroutine STORE redefined at C:/Perl/lib/DBD/XBase.pm line 119.
Subroutine FETCH redefined at C:/Perl/lib/DBD/XBase.pm line 128.
Subroutine tables redefined at C:/Perl/lib/DBD/XBase.pm line 138.
Subroutine quote redefined at C:/Perl/lib/DBD/XBase.pm line 153.
Subroutine commit redefined at C:/Perl/lib/DBD/XBase.pm line 164.
Subroutine rollback redefined at C:/Perl/lib/DBD/XBase.pm line 170.
Subroutine disconnect redefined at C:/Perl/lib/DBD/XBase.pm line 178.
Subroutine table_info redefined at C:/Perl/lib/DBD/XBase.pm line 191.
Subroutine type_info_all redefined at C:/Perl/lib/DBD/XBase.pm line 225.
Subroutine type_info redefined at C:/Perl/lib/DBD/XBase.pm line 234.
Subroutine DESTROY redefined at C:/Perl/lib/DBD/XBase.pm line 245.
Subroutine bind_param redefined at C:/Perl/lib/DBD/XBase.pm line 261.
Subroutine rows redefined at C:/Perl/lib/DBD/XBase.pm line 269.
Subroutine _set_rows redefined at C:/Perl/lib/DBD/XBase.pm line 273.
Subroutine execute redefined at C:/Perl/lib/DBD/XBase.pm line 283.
Subroutine fetch redefined at C:/Perl/lib/DBD/XBase.pm line 544.
Subroutine FETCH redefined at C:/Perl/lib/DBD/XBase.pm line 591.
Subroutine STORE redefined at C:/Perl/lib/DBD/XBase.pm line 628.
Subroutine finish redefined at C:/Perl/lib/DBD/XBase.pm line 638.
Subroutine DESTROY redefined at C:/Perl/lib/DBD/XBase.pm line 640.
Subroutine fetchrow_arrayref redefined at C:/Perl/lib/DBD/XBase.pm line 588.

Could I somehow have two copies of XBase installed?

Replies are listed 'Best First'.
Re: Re: Seemingly Internal DBD-XBase Error
by PsychoSpunk (Hermit) on Dec 22, 2000 at 02:31 UTC
    Possibly, but it's more likely to be reporting the fact that the DBD is overriding the functions of the DBI. Can anyone verify that?

    ALL HAIL BRAK!!!

Re: Re: Seemingly Internal DBD-XBase Error
by chipmunk (Parson) on Dec 22, 2000 at 02:44 UTC
    Do you have an explicit 'use DBD::Xbase;' in your code? If so, try removing it. DBI loads the appropriate modules for you when you call the connect method.
      I don't explicitly use DBD::XBase. However, the XBase.pm that we've been talking about is DBD::XBase. The top of XBase.pm is as follows.

      use strict;
      use DBI ();		# we want DBI
      use XBase;		# and we want the basic XBase handling modules
      use XBase::SQL;		# including the SQL parsing routines
      use Exporter;

      Could it be possible that it is confusing itself with the XBase it mentions? How do I check if I have that XBase even installed? If I use PPM and query XBase it checks on DBD-XBase.

        In order to reduce confusion, you might refer to the DBD::XBase file as DBD/XBase.pm, rather than XBase.pm. :)

        You can check if you have the XBase module (as opposed to the DBD::XBase module) like this: perl -MXBase -ce 1 It looks like the XBase bundle includes DBD::XBase, XBase, XBase::SQL, and a few other modules...