Re: Question on 'SQL' tracing

Martin Evans <[email protected]>
Newsgroups gmane.comp.lang.perl.modules.dbi.sybase.devel
Organization Easysoft Limited
Message-ID <[email protected]>
Martin Evans wrote:
> After seeing the recent posting by Greg Sabino Mullane in subject "Log 
> DBI query and values with placeholders" I realised there was something 
> else DBD::ODBC was out of date with - tracing.
> 
> DBD::ODBC does not implement its own trace flags but neither does it 
> react to 'SQL' tracing. If I set trace('SQL') I can see the TraceLevel 
> is set to 256 and I can find:
> 
>     sub parse_trace_flag {
>         my ($h, $name) = @_;
>         #      0xddDDDDrL (driver, DBI, reserved, Level)
>         return 0x00000100 if $name eq 'SQL';
>         return;
>     }
> 
> in DBI. So to test if 'SQL' is enabled we:
> 
> if *DBIc_TRACE_LEVEL(imp_xxh) & 256) {blah;}
> 
> Is that correct? No constant I am missing?
> 
> Martin

and also, how do I set this in Perl:

$dbh->{TraceLevel} = 'SQL|3';

     DBI::db=HASH(0x82ba9d4) trace level set to 0x100/3 (DBI @ 0x0/0) in 
DBI 1.601-ithread (pid 4574)

$dbh->prepare(xxxx)
   here when I examine DBIc_TRACE_LEVEL(imp_dbh) it is 3!

Similarly if I use:

$h->trace($h->parse_trace_flags('SQL'))

What am I doing wrong? I'm a little confused by this since DBD::Pg seems 
to expect 'SQL' to work.

Martin
-- 
Martin J. Evans
Easysoft Limited
http://www.easysoft.com
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.