Loading ...
Sorry, an error occurred while loading the content.
 

Re: [PBML] Re: :) modules modules modules

Expand Messages
  • Merlijn uyttersprot
    All set, been doing the copy of the other prepare query sub.;. pointed my error to some friends... been drinking lots of coffee.. Still no solution.. I thought
    Message 1 of 9 , Oct 1, 2001
      All set,

      been doing the copy of the other prepare query sub.;.
      pointed my error to some friends...
      been drinking lots of coffee..

      Still no solution..

      I thought it could be the compiler, strying prefs in
      the comp´┐Żler for different linking...

      Ate some French frites

      searched a bit further,
      then ERROR 7300
      whahahah

      Found it, I had forgotten to put SUB

      sub pln_show_data{.....

      works fine now

      /me becomes red, and has shame

      Merlijn

      Sorry bothering you all :)



      --- Sean <perlmongrel@...> wrote:
      > First off, I'm assuming you've created a database
      > handle with a
      > statement sort of like this:
      >
      > $dbh = DBI->connect($data_source, $username, $auth,
      > \%attr);
      >
      > Next, I'd ask what happens if when you put the
      > execute statement in
      > the main package.
      >
      > --- In perl-beginner@y..., Merlijn uyttersprot
      > <merlijn_u2@y...> wrote:
      > > Hello All,
      > > Raining greetings from Belgium;
      > >
      > > I'll scetch my situation:
      > >
      > > MAIN PRORGAM:
      > >
      > > #!/opt/local/perl/bin/perl
      > > use strict;
      > > use DBI;
      > > use CGI;
      > > use pln_show_data;
      > > ....
      > > my $stmt="Select * from dual";
      > > $db->{RaiseError} = 0;
      > > $dt = $db->prepare($stmt) || die
      > > "$stmt\n$DBI::errstr\n";
      > > ....
      > >
      > >
      > >
      > > MODULE pln_show_data:
      > >
      > > #!/opt/local/perl/bin/perl -w
      > > use strict;
      > > use DBI;
      > > package pln_show_data;
      > > ...
      > > $main::dt->execute;
      > > ...
      > >
      > >
      > > this generates error:
      > > Can't call method "execute" on an undefined value
      > at
      > > pln_show_data.pm (on the line of the execute)
      > >
      > >
      > > My taughts: You can't prepare a statement in
      > another
      > > memory "place". -> I'm forced to put the prepare
      > > statement in the same module? is this correct.
      > > Pitty is that it isn't possible in the current
      > code to
      > > put the prepare there)
      > >
      > >
      > > Any ideas?
      > >
      > > Merlijn
      > >
      > >
      > > Ps: (why am I using modules -> Current code has
      > 3800
      > > lines in one PERL file, I'm trying to cut it in
      > > subroutines/modules so later on I can work with
      > more
      > > friends at the same time on different
      > files/modules then.)
      > >
      > > __________________________________________________
      > > Do You Yahoo!?
      > > Listen to your Yahoo! Mail messages from any
      > phone.
      > > http://phone.yahoo.com
      >
      >


      __________________________________________________
      Do You Yahoo!?
      Listen to your Yahoo! Mail messages from any phone.
      http://phone.yahoo.com
    • Ferry I
      ... Here is a possibility (though I may not be 100% right) Your script use pln_show_data; The use statement require compiling pln_show-data.pm when called,
      Message 2 of 9 , Oct 2, 2001
        At 06:49 01/10/01 -0700, Merlijn uyttersprot wrote:
        >Can't call method "execute" on an undefined value at
        >pln_show_data.pm (on the line of the execute)

        Here is a possibility (though I may not be 100% right)

        Your script use pln_show_data;
        The use statement require compiling pln_show-data.pm when called, which, at
        the time it was called, $main::dt is thus not initialized at all.

        The following might help :
        * May be you can move the use pln_show_data; a few lines lower after the
        line where you initialize $main::dt

        #!/opt/local/perl/bin/perl
        use strict;
        use DBI;
        use CGI;
        ....
        my $stmt="Select * from dual";
        $db->{RaiseError} = 0;
        $dt = $db->prepare($stmt) || die
        "$stmt\n$DBI::errstr\n";
        use pln_show_data;

        * May be you can also try using "require" instead of "use"

        Once again, I may not 100% correct, but I hope it will do any help :)

        Best Regards,
        Ferry I
      Your message has been successfully submitted and would be delivered to recipients shortly.