Re: cruddy and smartcruddy : anyone using a different DBI Oracle Port?

[email protected] ("Derrin Morton")
Newsgroups perl.dbi.users
Message-ID <[email protected]>
Thanks to anyone who read this - I found a O'Reilly had some alternatives 

My environment required the following for DBI_DSN

SetEnv DBI_DSN dbi:Oracle:sid=mydb;database=mydb;host=myhost;port=1524

Thanks

Derrin

------ Original Message ------
Received: 08:42 PM CEST, 07/02/2010
From: "Derrin Morton" <[email protected]>
To: "dbi-users" <[email protected]>
Subject: cruddy and smartcruddy : anyone using a different DBI Oracle Port?

> Hello
> 
>  Environment
>  Debian 2.6.26-2-686 / Perl 5.10.0
>  Question CGI/CRUD - and its encapsulation of DBI using their
DBIx::Knowledge
>  http://www.thesmbexchange.com/smartcruddy/index.html
>  I can see from the apache2 logs that my httpd.conf variables DBI_DSN
DBI_USER
> DBI_PASS being processed correctly.  
>  However, my host Oracle database is only accessible via port 1524 (our
> Network admin is strict).
>  The default Oracle port is 1521 and I suspect smartcruddy has made the
> assumption that all Oracle DB's will be available over this port. 
> However - I cannot find the relevant DBI variable to over-ride the Port
number
> - - has anyone come across this and tried to adjust the port in cruddy
itself
> 
> I am relatively familiar with DBI and use the following to connect etc
> 
> my $oracle_port = "1524";
> ..
> my $dbh =
>
DBI->connect("dbi:Oracle:host=$oracle_server;port=$oracle_port;sid=$oracle_sid");
> 
> 
> 
> But the only place in Cruddy collects these variables is from apache2
> httpd.conf file  (as follows):
> 
> # Smart Cruddy
> SetEnv DBI_DSN dbi:Oracle:mydb
> SetEnv DBI_USER myuser
> SetEnv DBI_PASS mypass
> SetEnv DBI_PORT 1524
> 
> # DBI Variables
> SetEnv DBI_DRIVER Oracle
> SetEnv DBI_PORT 1524
> SetEnv DBI_USERNAME myuser
> SetEnv DBI_PASSWORD mypass
> SetEnv DBI_DATABASE mydb
> 
> SetEnv CRUDDY_FAST_TEMPLATE_PATH /var/www/tpl
> SetEnv SMARTCRUDDY_FAST_TEMPLATE_MAIN smartcruddy.tpl
> 
> # Variables definately set in environment - but proving so below
> #  PassEnv LD_LIBRARY_PATH
> #  PassEnv ORACLE_HOME
> 
> SetEnv LD_LIBRARY_PATH /opt/oracle/product/11.1.0/lib
> SetEnv ORACLE_HOME /opt/oracle/product/11.1.0
> 
> 
> 
> 
> I have tried the following on httpd DBI_DSN
> SetEnv DBI_DSN dbi:Oracle:mydb:1524
> (along with all the other required variables I should add)
> to no avail
> 
> Is there a DBI_PORT switch or some other relevant variable?
> 
> Error messages from this product 
> 
> When I run the smartcruddy.pl script that is shipped from the command the
> following message is returned
> 
> 
> 
> Can't connect to data source '' because I can't work out what driver to use
> (it doesn't seem to contain a 'dbi:driver:' prefix and the DBI_DRIVER env
var
> is not set) at
/usr/local/share/perl/5.10.0/CGI/CRUD/CGIOutputFastTemplate.pm
> line 38
> 
> When I run the script as intended from a browser - I get the appropriate
HTTP
> 500 and the apache2/error.log reads as follows
> [Fri Jul 02 19:20:48 2010] [error] [client 10.234.18.189] DBI
> connect('mydb','rep_dwh',...) failed: ERROR OCIEnvNlsCreate. Check
ORACLE_HOME
> (Linux) env var  or PATH (Windows) and or NLS settings, permissions, etc.
at
> /usr/local/share/perl/5.10.0/CGI/CRUD/CGIOutputFastTemplate.pm line 38
> [Fri Jul 02 19:20:48 2010] [error] [client 10.234.18.189]
[CGI::FastTemplate]
> Warning: no value found for variable: HOME_URL
> [Fri Jul 02 19:20:48 2010] [error] [client 10.234.18.189] Can't call method
> "header" on an undefined value at
> /usr/local/share/perl/5.10.0/CGI/CRUD/CGIOutputFastTemplate.pm line 91.
> [Fri Jul 02 19:20:48 2010] [error] [client 10.234.18.189] Premature end of
> script headers: smartcruddy.pl
> 
>  
>  
>  Help really appreciated - if this can get working I can advance our BI
stack
> dramatically
> 
> #/usr/local/share/perl/5.10.0/CGI/CRUD/CGIOutputFastTemplate.pm : line 39
>  89	    my $gob = $tpl->fetch('CONTENT');
>     90	
>     91	    print $self->{cgi}->header, $$gob;
> 
>  
> #/usr/local/share/perl/5.10.0/CGI/CRUD/CGIOutputFastTemplate.pm : line 38
> unless ($self->{dbh} = DBI->connect(undef,undef,undef,{ PrintError => 1,
> RaiseError => 0, AutoCommit => 1, })) 
> 
> # the main smartcruddy.pl script declares the $dbh as follows - which is
just
> plain confusing
> 
> my $r = new CGI::CRUD::CGIOutputFastTemplate($q) or exit 0;
> ..
> 
> if (!length($req_table_name) || $r->param('__SDAT_TAB_ACTION.RESTART'))
> {
>     request_action($r);
> }
> else
> {
>     my $report = new DBIx::Knowledge::Report($r,$req_table_name) or exit 0;

>     $report->{action} = $action;
>     $report->select_list_from_table(uc($req_table_name)) or exit 0; 
>     $report->take_action();
> }
> 
> 
> 
> sub request_action
> {
>     my ($r) = @_;
>     my $dbh = $r->dbh();
>     my $form = $r->form($dbh);
> ..
> }
>  
> 
>  
>  
>  
>  
> 
>  
>
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.