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" <der...@usa.net>
To: "dbi-users" <dbi-users@perl.org>
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);
> ..
> }
>  
> 
>  
>  
>  
>  
> 
>  
> 


Reply via email to