taioba has asked for the wisdom of the Perl Monks concerning the following question:
Your Holinesses,
I'm trying to recover the name, type and precision of fields in tables stored in a MySQL database using a database handle created via DBD::mysqlPP. I tried the code:
package FieldAttribs; use DBI; $dbh = ( "dbi:mysqlPP:database=$database;host=$host;port=$port", $user +name, $password, {'RaiseError'=> 1} ); $sth = $dbh->prepare( "SELECT * FROM $table" ); $sth->execute(); printf "%s %s %s", $sth->{NAME_lc}->[0], $sth->{TYPE}->[0], $sth->{PRE +CISION}->[0];
But then I get:
Can't set DBI::st=HASH(0x370ee64)->{TYPE}: unrecognised attribute name or invalid value at C:/Perl/site/lib/DBD/mysqlPP.pm line 439.
Can't set DBI::st=HASH(0x370ee64)->{PRECISION}: unrecognised attribute name or invalid value at C:/Perl/site/lib/DBD/mysqlPP.pm line 439.
Use of uninitialized value in printf at D:\Marcos\Perl\SVN\WbMx\trunk\Auxiliary\TestmysqlPP.pl line 11.
Use of uninitialized value in printf at D:\Marcos\Perl\SVN\WbMx\trunk\Auxiliary\TestmysqlPP.pl line 11.
field1
Where 'field1' is actually the name of the field. Thus, NAME seems to be only statement handle that works. If I try the same code using the driver 'dbi:ODBC:driver=Microsoft Access Driver (*.mdb, *.accdb)' targeting an Access database with an identical table, I get:
field1 4 10
Any ideas? Many thanks in advance!
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re: DBD::mysqlPP does not support TYPE and PRECISION statement handles?
by kcott (Archbishop) on Oct 25, 2010 at 22:45 UTC | |
by taioba (Acolyte) on Oct 26, 2010 at 16:28 UTC | |
|
Re: DBD::mysqlPP does not support TYPE and PRECISION statement handles?
by aquarium (Curate) on Oct 25, 2010 at 23:37 UTC | |
|
Re: DBD::mysqlPP does not support TYPE and PRECISION statement handles?
by NetWallah (Canon) on Oct 25, 2010 at 19:11 UTC | |
by taioba (Acolyte) on Oct 26, 2010 at 16:26 UTC |