On 27/09/13 16:29, demerphq wrote:> On 27 September 2013 17:08, Martin J. Evans
<boh...@ntlworld.com> wrote:
On 27/09/13 15:37, demerphq wrote:
Is there an undocumented magic variable that will make DBI trace mode
show more than the first two arguments to a function like
selectrow_array() or similar?
Cheers,
Yves
Works for me:
DBI_TRACE=15=x.log perl -Iblib/lib/ -Iblib/arch/ -MDBI -le 'my $h =
DBI->connect("dbi:ODBC:xxx","xx","xx"); my $x =
$h->selectrow_arrayref(q/select * from mje where a= ?/, undef, "a");'
trace shows 3 arguments:
-> selectrow_arrayref for DBD::ODBC::db
(DBI::db=HASH(0x9385508)~0x938542c 'select * from mje where a= ?' undef 'a')
thr#9215008
There is also DBIx::Log4perl and DBIx::LogAny too if you want to trace just
method calls and arguments.
Gah, that outputs too much junk at the same time....
Which outputs too much junk at the same time? level 15 tracing or
DBIx::Log4perl?
I want to control it at DBI->trace(1) level. IOW, I dont want low
level debug on the DBI calls, I want the output from trace(1) but with
all the arguments.
You didn't mention trace level 1 before. Now I see what you mean:
DBI_TRACE=1=x.log perl -Iblib/lib/ -Iblib/arch/ -MDBI -le 'my $h =
DBI->connect("dbi:ODBC:xx","xx","xx"); my $x = $h->selectrow_arrayref(q/select * from mje
where a= ?/, undef, "a");'
<- selectrow_arrayref('select * from mje where a= ?', undef, ...)= ( [ 'a'
'b' ] ) [1 items] at -e line 1
I can change how much of a given string I see with $DBI::neat_maxlen
but there doesnt seem to a be a $DBI::neat_list_maxitems or
equivalent....
cheers,
Yves
No, there isn't. I wouldn't imagine it would be too hard to add though (not
that I looked).
Martin