You are viewing a plain text version of this content. The canonical link for it is here.
Posted to asp@perl.apache.org by Mike Witkowski <wi...@calvin.gsfc.nasa.gov> on 2002/03/13 21:32:58 UTC

asp && DBlib

 Does anyone have an idea on this?
 
 ===
 $dbh =  Sybase::DBlib->dblogin($usr, $pwd, $server, 'cipro_2k');
 $dbh -> dbcmd("select * from $table_name where userid = '$usr' ");
 ===
 
 yields an error ::
 
 ===
 [error] [asp] [15319] [error] Can't call method "dbcmd" on an undefined
 value at session_query_parse.psp line 35. <--> ,
 /usr/local/share/perl/5.6.1/Apache/ASP.pm line 1550
 ===
 
 when I try to run it in an asp file
 
 But I can connect to the db server fine when I write a stand alone
 script?
 
 What am I missing?
 Any thoughts or ideas would be appreciated!
 
 
 bigger code excerpt
 =====
 <%@ PerlScript %>
 
  <%
  use Sybase::DBlib;
  use strict;
 
   ...
   my vars...
   ...
 
 $dbh = Sybase::DBlib->dblogin($usr, $pwd, $server, 'cipro_2k');
 $dbh->dbcmd("select * from $table_name where userid = '$usr' ");
 $dbh->dbsqlexec;
 $dbh->dbresults;
 
 while (@data = $dbh->dbnextrow)
  {
   $i = 1;
  while ($i)
   {
   $stringb = $dbh -> dbcolname($i);
   if (!$stringb) {last}
   $data_hsh{$stringb} = $data[$i-1] unless (!$data[$i-1]);
   $i++;
   }
  }
 %>
 <HTML>
   <HEAD></HEAD>
    <BODY>
    <H1>Say Hello, Boys!</H1>
 
    <% my @onehit = ("Bel", "Biv", "DeVoe"); %>
 
    <P>
    <%= $onehit[0] %> says "Hello."
    <BR>
    <%= $onehit[1] %> says "Hello."
    <BR>
    <%= $onehit[2] %> says "Hello."
    <BR>
    <%   foreach $key (keys %data_hsh)
        {                            %>
        <%= $data_hsh{$key}%> <BR>
    <%     }                     %>
 
   </P>
  </BODY>
 </HTML>
 =====
 
 Thanks
 
 Michael Witkowski
 

---------------------------------------------------------------------
To unsubscribe, e-mail: asp-unsubscribe@perl.apache.org
For additional commands, e-mail: asp-help@perl.apache.org


Re: asp && DBlib

Posted by Joshua Chamas <jo...@chamas.com>.
Mike Witkowski wrote:
> 
>  Does anyone have an idea on this?
> 
>  ===
>  $dbh =  Sybase::DBlib->dblogin($usr, $pwd, $server, 'cipro_2k');
>  $dbh -> dbcmd("select * from $table_name where userid = '$usr' ");
>  ===
> 
>  yields an error ::
> 
>  ===
>  [error] [asp] [15319] [error] Can't call method "dbcmd" on an undefined
>  value at session_query_parse.psp line 35. <--> ,
>  /usr/local/share/perl/5.6.1/Apache/ASP.pm line 1550
>  ===
> 

Is there anything in $! ?  Is there any way to get this to trigger 
a better error like RaiseError in DBI ?

>  when I try to run it in an asp file
> 
>  But I can connect to the db server fine when I write a stand alone
>  script?
> 
>  What am I missing?
>  Any thoughts or ideas would be appreciated!
> 

My experience with Oracle has been similar, where so much gets 
configured from the environment variables, that the difference
between running perl code from the httpd & another user environment
can make programs not work.  

Running perl code from the httpd causes not only the %ENV to be 
different ( which can be a big deal ) but also causes the user 
itself to be different, so there may be permissions issues.  
Also if you have gone & done something like chroot or jail 
your web server, lots of other things could not be working 
right because of those limitations.

I would first look and see what is different between %ENV
as a user from the command line, and in mod_perl.  Then I 
would make those parts that might be Sybase related 
the same by doing something like init %ENV variables in
Script_OnStart on in the script itself to start with.  

If you still have problems, there might be a user permissions 
issue, in which case I would configure the httpd to run 
as the same user as you run scripts from the command line.
I would not run the web server this way in production, but
this may help isolate what the problems are.  If the user 
you run the web server as normally does not have read access
to the Sybase libs for example that could cause problems.

--Josh
_________________________________________________________________
Joshua Chamas                           Chamas Enterprises Inc.
NodeWorks Founder                       Huntington Beach, CA  USA 
http://www.nodeworks.com                1-714-625-4051

---------------------------------------------------------------------
To unsubscribe, e-mail: asp-unsubscribe@perl.apache.org
For additional commands, e-mail: asp-help@perl.apache.org