Hi, Im trying to use the ESQL taglib with a mysql databases but I can't seem to get it to work. I'm getting the error:
Compilation failed: Global symbol "$document" requires explicit package name at (eval 27) Can anyone help? Adam Here is the test XSP file: ____________________________________________________ <?xml version="1.0" encoding="UTF-8"?> <?xml-stylesheet href="NULL" type="application/x-xsp"?> <xsp:page language="Perl" xmlns:xsp="http://apache.org/xsp/core/v1" xmlns:esql="http://apache.org/xsp/SQL/v2" > <esql:connection> <esql:driver>mysql</esql:driver> <esql:dburl>grecui_shopping</esql:dburl> <esql:username>grecui_web</esql:username> <esql:password>grecui_web</esql:password> <esql:execute-query> <esql:query> select * from baskets </esql:query> <esql:results> <header>header info</header> <esql:row-results> <department> <id> <esql:get-int column="basketid"/> </id> <stamp> <esql:get-date column="stamp"/> </stamp> <dbid> <esql:get-int column="databseid"/> </dbid> </department> </esql:row-results> <footer>footer info</footer> </esql:results> <esql:no-results> <department>No departments</department> </esql:no-results> </esql:execute-query> </esql:connection> </xsp:page> ____________________________________________________ Here is a level 10 debug: ____________________________________________________ [Sun Jul 28 19:45:10 2002] [warn] [client 62.254.128.7] [AxKit] fast handler called for /test/xspesql/test.xsp [Sun Jul 28 19:45:10 2002] [warn] [client 62.254.128.7] [AxKit] Content Provider Override: Apache::AxKit::Provider::File [Sun Jul 28 19:45:10 2002] [warn] [client 62.254.128.7] [AxKit] [req] File Provider given $r: /www/vhtdocs/aog/test/xspesql/test.xsp [Sun Jul 28 19:45:10 2002] [warn] [client 62.254.128.7] [AxKit] checking if we process this resource [Sun Jul 28 19:45:12 2002] [warn] [client 62.254.128.7] [AxKit] media: screen, preferred style: #default [Sun Jul 28 19:45:12 2002] [warn] [client 62.254.128.7] [AxKit] Cache: key = f0a608f405551e9edbfd3a6ce6748bac [Sun Jul 28 19:45:12 2002] [warn] [client 62.254.128.7] [AxKit] getting styles and external entities from the XML [Sun Jul 28 19:45:12 2002] [warn] [client 62.254.128.7] [AxKit] styles not cached - calling $provider->get_styles() [Sun Jul 28 19:45:12 2002] [warn] [client 62.254.128.7] [AxKit] using XS get_styles (libxml2) [Sun Jul 28 19:45:12 2002] [warn] [client 62.254.128.7] [AxKit] calling xs_get_styles_fh() [Sun Jul 28 19:45:12 2002] [warn] [client 62.254.128.7] [AxKit] calling xs_get_styles_str() [Sun Jul 28 19:45:12 2002] [warn] [client 62.254.128.7] [AxKit] parse_pi: href = NULL [Sun Jul 28 19:45:12 2002] [warn] [client 62.254.128.7] [AxKit] parse_pi: type = application/x-xsp [Sun Jul 28 19:45:12 2002] [warn] [client 62.254.128.7] [AxKit] xs_get_styles returned: , , {http://apache.org/xsp/core/v1}page [Sun Jul 28 19:45:12 2002] [warn] [client 62.254.128.7] [AxKit] Calling GetMatchingProcessors with (screen, , , , {http://apache.org/xsp/core/v1}page) [Sun Jul 28 19:45:12 2002] [warn] [client 62.254.128.7] [AxKit] get_styles: loading style modules [Sun Jul 28 19:45:12 2002] [warn] [client 62.254.128.7] [AxKit] get_styles: looking for mapping for style type: 'application/x-xsp' [Sun Jul 28 19:45:12 2002] [warn] [client 62.254.128.7] [AxKit] cache doesn't exist [Sun Jul 28 19:45:12 2002] [warn] [client 62.254.128.7] [AxKit] some condition failed. recreating output [Sun Jul 28 19:45:12 2002] [warn] [client 62.254.128.7] [AxKit] styles: Apache::AxKit::Language::XSP(NULL) [Sun Jul 28 19:45:12 2002] [warn] [client 62.254.128.7] [AxKit] Style Provider Override: Apache::AxKit::Provider::File [Sun Jul 28 19:45:12 2002] [warn] [client 62.254.128.7] [AxKit] [uri] File Provider looking up uri NULL [Sun Jul 28 19:45:12 2002] [warn] [client 62.254.128.7] [AxKit] [uri] File Provider set filename to /www/vhtdocs/aog/test/xspesql/NULL [Sun Jul 28 19:45:12 2002] [warn] [client 62.254.128.7] [AxKit] about to execute: Apache::AxKit::Language::XSP::handler [Sun Jul 28 19:45:12 2002] [warn] [client 62.254.128.7] [AxKit] XSP: parsing fh [Sun Jul 28 19:45:12 2002] [warn] [client 62.254.128.7] [AxKit] Recompiling XSP script [Sun Jul 28 19:45:12 2002] [warn] [client 62.254.128.7] [AxKit] package Apache::AxKit::Language::XSP::ROOT::www::vhtdocs::aog::test::xspesql::te st_2exsp; @Apache::AxKit::Language::XSP::ROOT::www::vhtdocs::aog::test::xspesql::t est_2exsp::ISA = ('Apache::AxKit::Language::XSP::Page'); use Apache; use Apache::Constants qw(:common); use XML::LibXML;#initialize xsp namespace #initialize xsp namespace { my ($dbh, $connect_count, $driver, $transactions, $dburl, $user, $pass); $transactions = 1;$driver = "dbi:". q|mysql|;$dburl = "". q|grecui_shopping|;$user = "". q|grecui_web|;$pass = "". q|grecui_web|;$dbh = DBI->connect($driver . ($dburl ? ":$dburl" : ''), $user, $pass, { PrintError => 0, AutoCommit => $transactions ? 0 : 1, RaiseError => 1, }) unless $connect_count; $connect_count++; AxKit::XSP::ESQL::new_query(); { my ($query, $max_rows, $skip_rows, @params, $rv); $max_rows = 0; $skip_rows = 0; $query = "". q| select * from baskets |; { AxKit::XSP::ESQL::prepare($dbh, $query); $rv = AxKit::XSP::ESQL::execute(@params); my ($col, $ancestor, $format); if ($skip_rows) { 1 while (AxKit::XSP::ESQL::get_count() < $skip_rows && AxKit::XSP::ESQL::get_row()); } if (AxKit::XSP::ESQL::get_row()) { sub handler { my ($r, $cgi, $document) = @_; my ($parent); { my $elem = $document->createElement(q|header|);$document->setDocumentElement($elem) ; $parent = $elem; } { my $text = $document->createTextNode(q|header info|);$parent->appendChild($text); } $parent = $parent->getParentNode; do { { my $elem = $document->createElement(q|department|);$parent->appendChild($elem); $parent = $elem; } { my $elem = $document->createElement(q|id|);$parent->appendChild($elem); $parent = $elem; } { my $text = $document->createTextNode("".do { $col = ""; $ancestor = 0; $format = "";$col = q|basketid|;$ancestor = 0;sprintf("%d", AxKit::XSP::ESQL::get_column($col, $ancestor))}); # non xsp tag $parent->appendChild($text); } $parent = $parent->getParentNode; { my $elem = $document->createElement(q|stamp|);$parent->appendChild($elem); $parent = $elem; } { my $text = $document->createTextNode("".do { $col = ""; $ancestor = 0; $format = "";$col = q|stamp|;$ancestor = 0;AxKit::XSP::ESQL::get_column($col, $ancestor)}); # non xsp tag $parent->appendChild($text); } $parent = $parent->getParentNode; { my $elem = $document->createElement(q|dbid|);$parent->appendChild($elem); $parent = $elem; } { my $text = $document->createTextNode("".do { $col = ""; $ancestor = 0; $format = "";$col = q|databseid|;$ancestor = 0;sprintf("%d", AxKit::XSP::ESQL::get_column($col, $ancestor))}); # non xsp tag $parent->appendChild($text); } $parent = $parent->getParentNode; $parent = $parent->getParentNode; if ($max_rows && AxKit::XSP::ESQL::get_count() >= $max_rows) { last; } } while (AxKit::XSP::ESQL::get_row()); # while(get_row) </row-results> { my $elem = $document->createElement(q|footer|);$parent->appendChild($elem); $parent = $elem; } { my $text = $document->createTextNode(q|footer info|);$parent->appendChild($text); } $parent = $parent->getParentNode; } # end - if (rows existed) } # </results> $dbh->commit if $transactions; if (AxKit::XSP::ESQL::get_count() == 0) { my ($col, $ancestor, $format); { my $elem = $document->createElement(q|department|);$parent->appendChild($elem); $parent = $elem; } { my $text = $document->createTextNode(q|No departments|);$parent->appendChild($text); } $parent = $parent->getParentNode; } # </no-results> } # </execute-query> AxKit::XSP::ESQL::end_query(); $connect_count--; unless ($connect_count) { $dbh->disconnect(); undef $dbh; } } # /connection return OK; } Script: 1 package Apache::AxKit::Language::XSP::ROOT::www::vhtdocs::aog::test::xspesql::te st_2exsp; @Apache::AxKit::Language::XSP::ROOT::www::vhtdocs::aog::test::xspesql::t est_2exsp::ISA = ('Apache::AxKit::Language::XSP::Page'); 2 use Apache; 3 use Apache::Constants qw(:common); 4 use XML::LibXML;#initialize xsp namespace 5 #initialize xsp namespace 6 7 { 8 my ($dbh, $connect_count, $driver, $transactions, $dburl, $user, $pass); 9 $transactions = 1;$driver = "dbi:". q|mysql|;$dburl = "". q|grecui_shopping|;$user = "". q|grecui_web|;$pass = "". q|grecui_web|;$dbh = DBI->connect($driver . ($dburl ? ":$dburl" : ''), 10 $user, $pass, 11 { 12 PrintError => 0, 13 AutoCommit => $transactions ? 0 : 1, 14 RaiseError => 1, 15 }) unless $connect_count; 16 $connect_count++; 17 AxKit::XSP::ESQL::new_query(); 18 { 19 my ($query, $max_rows, $skip_rows, @params, $rv); 20 $max_rows = 0; $skip_rows = 0; 21 $query = "". q| 22 select * from baskets 23 |; 24 { 25 AxKit::XSP::ESQL::prepare($dbh, $query); 26 $rv = AxKit::XSP::ESQL::execute(@params); 27 my ($col, $ancestor, $format); 28 if ($skip_rows) { 29 1 while (AxKit::XSP::ESQL::get_count() < $skip_rows && AxKit::XSP::ESQL::get_row()); 30 } 31 if (AxKit::XSP::ESQL::get_row()) { 32 sub handler { 33 my ($r, $cgi, $document) = @_; 34 my ($parent); 35 36 { my $elem = $document->createElement(q|header|);$document->setDocumentElement($elem) ; $parent = $elem; } 37 { my $text = $document->createTextNode(q|header info|);$parent->appendChild($text); } 38 $parent = $parent->getParentNode; 39 do { 40 { my $elem = $document->createElement(q|department|);$parent->appendChild($elem); $parent = $elem; } 41 { my $elem = $document->createElement(q|id|);$parent->appendChild($elem); $parent = $elem; } 42 { 43 my $text = $document->createTextNode("".do { 44 $col = ""; $ancestor = 0; $format = "";$col = q|basketid|;$ancestor = 0;sprintf("%d", AxKit::XSP::ESQL::get_column($col, $ancestor))}); # non xsp tag 45 $parent->appendChild($text); 46 } 47 $parent = $parent->getParentNode; 48 { my $elem = $document->createElement(q|stamp|);$parent->appendChild($elem); $parent = $elem; } 49 { 50 my $text = $document->createTextNode("".do { 51 $col = ""; $ancestor = 0; $format = "";$col = q|stamp|;$ancestor = 0;AxKit::XSP::ESQL::get_column($col, $ancestor)}); # non xsp tag 52 $parent->appendChild($text); 53 } 54 $parent = $parent->getParentNode; 55 { my $elem = $document->createElement(q|dbid|);$parent->appendChild($elem); $parent = $elem; } 56 { 57 my $text = $document->createTextNode("".do { 58 $col = ""; $ancestor = 0; $format = "";$col = q|databseid|;$ancestor = 0;sprintf("%d", AxKit::XSP::ESQL::get_column($col, $ancestor))}); # non xsp tag 59 $parent->appendChild($text); 60 } 61 $parent = $parent->getParentNode; 62 $parent = $parent->getParentNode; 63 if ($max_rows && AxKit::XSP::ESQL::get_count() >= $max_rows) { 64 last; 65 } 66 } while (AxKit::XSP::ESQL::get_row()); # while(get_row) </row-results> 67 { my $elem = $document->createElement(q|footer|);$parent->appendChild($elem); $parent = $elem; } 68 { my $text = $document->createTextNode(q|footer info|);$parent->appendChild($text); } 69 $parent = $parent->getParentNode; 70 } # end - if (rows existed) 71 } # </results> 72 $dbh->commit if $transactions; 73 if (AxKit::XSP::ESQL::get_count() == 0) { 74 my ($col, $ancestor, $format); 75 { my $elem = $document->createElement(q|department|);$parent->appendChild($elem); $parent = $elem; } 76 { my $text = $document->createTextNode(q|No departments|);$parent->appendChild($text); } 77 $parent = $parent->getParentNode; 78 79 } # </no-results> 80 } # </execute-query> 81 AxKit::XSP::ESQL::end_query(); 82 $connect_count--; 83 unless ($connect_count) { 84 $dbh->disconnect(); 85 undef $dbh; 86 } 87 88 } # /connection 89 90 return OK; 91 } 92 [Sun Jul 28 19:45:12 2002] [warn] [client 62.254.128.7] [AxKit] Caught an exception [Sun Jul 28 19:45:12 2002] [error] [client 62.254.128.7] [AxKit] [Error] Compilation failed: Global symbol "$document" requires explicit package name at (eval 27) line 75. Global symbol "$parent" requires explicit package name at (eval 27) line 75. Global symbol "$parent" requires explicit package name at (eval 27) line 75. Global symbol "$document" requires explicit package name at (eval 27) line 76. Global symbol "$parent" requires explicit package name at (eval 27) line 76. Global symbol "$parent" requires explicit package name at (eval 27) line 77. Global symbol "$parent" requires explicit package name at (eval 27) line 77. [Sun Jul 28 19:45:12 2002] [error] [client 62.254.128.7] [AxKit] From: /usr/local/lib/perl5/site_perl/Error.pm : 148 [Sun Jul 28 19:45:12 2002] [error] [client 62.254.128.7] [AxKit] [Backtrace] Compilation failed: Global symbol "$document" requires explicit package name at (eval 27) line 75. Global symbol "$parent" requires explicit package name at (eval 27) line 75. Global symbol "$parent" requires explicit package name at (eval 27) line 75. Global symbol "$document" requires explicit package name at (eval 27) line 76. Global symbol "$parent" requires explicit package name at (eval 27) line 76. Global symbol "$parent" requires explicit package name at (eval 27) line 77. Global symbol "$parent" requires explicit package name at (eval 27) line 77. Error::throw('Apache::AxKit::Exception::Error', '-text', 'Compilation failed: Global symbol "$document" requires explicit ...') called at /usr/local/lib/perl5/site_perl/i386-linux-thread-multi/Apache/AxKit/Lang uage/XSP.pm line 114 Apache::AxKit::Language::XSP::handler('Apache::AxKit::Language::XSP', 'AxKit::Apache=SCALAR(0x818c9d0)', 'Apache::AxKit::Provider::File=HASH(0x8426db4)', 'Apache::AxKit::Provider::File=HASH(0x882ad5c)', 1) called at /usr/local/lib/perl5/site_perl/i386-linux-thread-multi/AxKit.pm line 623 AxKit::process_request('AxKit::Apache=SCALAR(0x818c9d0)', 'Apache::AxKit::Provider::File=HASH(0x8426db4)', 'ARRAY(0x8469ab0)') called at /usr/local/lib/perl5/site_perl/i386-linux-thread-multi/AxKit.pm line 437 AxKit::run_axkit_engine('AxKit::Apache=SCALAR(0x818c9d0)', 'Apache::AxKit::Provider::File=HASH(0x8426db4)') called at /usr/local/lib/perl5/site_perl/i386-linux-thread-multi/AxKit.pm line 264 eval {...} called at /usr/local/lib/perl5/site_perl/i386-linux-thread-multi/AxKit.pm line 255 AxKit::main_handler('AxKit::Apache=SCALAR(0x818c9d0)', 'Apache::AxKit::Provider::File=HASH(0x8426db4)') called at /usr/local/lib/perl5/site_perl/i386-linux-thread-multi/AxKit.pm line 172 AxKit::fast_handler('AxKit::Apache=SCALAR(0x818c9d0)') called at /dev/null line 0 eval {...} called at /dev/null line 0 --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
