Hi
When I execute with Perl, I don't have any problems. When I do an
executable with perlcc, at the moment I execute the archive, I get the
message 'Can't locate object method connect via package DBI' "

i need help please about this problem!!!!

The source code is very simple:

#!/usr/local/bin/perl  -w
use DBI;
$dbh;
$sth;
{
   $v_dbname   = $ENV{ORACLE_SID};
   $v_userDB   = 'fa';
   $v_passDB   = 'af1';
   $v_dbd      = 'Oracle';

#================= Conexión a BD ========================
   $dbh=DBI->connect($v_dbname,$v_userDB,$v_passDB,$v_dbd) || die "Error de
Conexión: $DBI::errstr. \n";
   $sth=$dbh->prepare("
                        select to_char(sysdate, 'dd/mm/yyyy hh24:mm:dd')
from dual
                      ");
   $sth->execute;
   @row=$sth->fetchrow_array;
   print "La fecha del sistema es: $row[0]\n";
}

the output of 'perl -V' is:

Summary of my perl5 (5.0 patchlevel 5 subversion 3) configuration:
  Platform:
    osname=aix, osvers=4.3.2.0, archname=aix
    uname='aix antuco_stby 3 4 000123934c00 '
    hint=recommended, useposix=true, d_sigaction=define
    usethreads=undef useperlio=undef d_sfio=undef
  Compiler:
    cc='cc', optimize='-O', gccversion=
    cppflags='-D_ALL_SOURCE -D_ANSI_C_SOURCE -D_POSIX_SOURCE -qmaxmem=8192'
    ccflags ='-D_ALL_SOURCE -D_ANSI_C_SOURCE -D_POSIX_SOURCE -qmaxmem=8192'
    stdchar='unsigned char', d_stdstdio=define, usevfork=false
    intsize=4, longsize=4, ptrsize=4, doublesize=8
    d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=8
    alignbytes=8, usemymalloc=n, prototype=define
  Linker and Libraries:
    ld='ld', ldflags =''
    libpth=/lib /usr/lib /usr/ccs/lib
    libs=-lnsl -ldbm -ldl -lld -lm -lc -lcrypt -lbsd -lPW
    libc=, so=a, useshrplib=false, libperl=libperl.a
  Dynamic Linking:
    dlsrc=dl_aix.xs, dlext=so, d_dlsymun=undef, ccdlflags='-bE:perl.exp'
    cccdlflags=' ', lddlflags='-bhalt:4 -bM:SRE -bI:$(PERL_INC)/perl.exp
-bE:$(BASEEXT).exp -b noentry -lc'


Characteristics of this binary (from libperl):
  Built under aix
  Compiled at Apr  8 2000 19:49:22
  @INC:
    /usr/local/lib/perl5/5.00503/aix
    /usr/local/lib/perl5/5.00503
    /usr/local/lib/perl5/site_perl/5.005/aix
    /usr/local/lib/perl5/site_perl/5.005


Thanks for you help....


Muy atentamente,

Germán Marambio Vargas

> -----Original Message-----
> From: Roberto Slepetys Ferreira [mailto:[EMAIL PROTECTED]]
> Sent: Wednesday, April 11, 2001 7:37 AM
> To: [EMAIL PROTECTED]
> Subject: DBI and PERLCC
>
>
> Hi,
>
> I am starting to use the Perl Compiler perlcc to make some
> tests... Ok, Ok, it's only a beta, maybe an alfa....
>
> But...

At the top of your source:

BEGIN {
    require DBI;
    require DBD::Mysql;
}

>
> I am trying to compile very single scripts using an script
> that emules the PERLCC, basicly it generates the C code with:
>
> perl -I/usr/local/lib/perl5/5.6.1/i686-linux
> -I/usr/local/lib/perl5/5.6.1
> -I/usr/local/lib/perl5/site_perl/5.6.1/i686-linux
  -I/usr/local/lib/perl5/site_perl/5.6.1/i686-linux/auto/DBI
> -I/usr/local/lib/perl5/site_perl/5.6.1
> -I/usr/local/lib/perl5/site_perl -I.
> -MO=C,-umain,-uattributes,-uDB,-ofile.c file.pl
                              ^^
  -MO=C,-umain,-uattributes,-uDBI,-uDBD::Mysql,-ofile.c file.pl


>
>
> Then, I compile it using:
>
> gcc  -fno-strict-aliasing -D-D_LARGEFILE_SOURCE
> -D_FILE_OFFSET_BITS=64
> -I/usr/local/lib/perl5/5.6.1/i686-linux/CORE  -o ./$arquivo
> $arquivo.c  -rdynamic
> -Wl,-rpath,/usr/local/lib/perl5/5.6.1/i686-linux/CORE
> -L/usr/local/lib
> /usr/local/lib/perl5/5.6.1/i686-linux/auto/DynaLoader/DynaLoad
> er.a -L/usr/local/lib/perl5/5.6.1/i686-linux/CORE -lperl
> -lnsl -ldl -lm -lc -lcrypt -lutil
> -L/usr/lib/perl5/site_perl/i386-linux/auto/DBD/mysql/
> -I/usr/lib/perl5/site_perl/i386-linux/auto/DBD/mysql/
>
Umm! Where's DBI? Try this or similar.

gcc  -fno-strict-aliasing -DDYNALOADER_BOOTSTRAP -D_LARGEFILE_SOURCE
-D_FILE_OFFSET_BITS=64  -I/usr/lib/perl5/5.6.1/i686-linux/CORE  -o file
file.c  -rdynamic -L/usr/local/lib
/usr/lib/perl5/5.6.1/i686-linux/auto/DynaLoader/DynaLoader.a
-L/usr/lib/perl5/5.6.1/i686-linux/CORE -lperl -lnsl -ldl -lm -lc -lposix
-lcrypt -lutil -L/usr/lib/perl5/site_perl/5.6.1/i686-linux/auto/DBD/ODBC/
-L/usr/lib/perl5/site_perl/5.6.1/i686-linux/auto/DBI/
-I/usr/lib/perl5/site_perl/5.6.1/i686-linux/auto/DBI/

> When I use it in a very simple scripts like scripts without
> calling modules, or calling modules like CGI.pm it works fine.
>
> But when I try to use de DBI to connect to a MySQL database,
> I compile the archive, but when I try to execute it returns
> an error not present in the original script:
>
> Can't locate object method "connect" via package "DBI"
> (perhaps you forgot to load "DBI"?) at teste.pl line 9.

You should be a bit further on the road after that:

Undefined subroutine &DBI::dr::connect called at
/usr/lib/perl5/site_perl/5.6.1/
i686-linux/DBI.pm line 408.

Which is obviously not complete. But at least the package is loaded if you
really want to play with it.

So the question now is, does anybody know what's going on here!
                                                          ^^^^^
>
> I included the mysql DBD directories and put use DBD::mysql
> into the code without sucess.
>
> Do anyone have any idea of what is going on it ?
>
> Thanks
> Slepetys
>

__________________________________________________________________________
Please Note :
Only  the intended recipient is authorised to access or use this e-mail..
If
you are not the intended recipient,
please delete this e-mail and notify the sender immediately.   The contents
of this e-mail are the writer's
opinion and are not necessarily endorsed by the Gunz Companies unless
expressly stated.

We use virus scanning software but exclude all liability for viruses or
similar in any attachment.




Reply via email to