Catalog() in Win32::ODBC for MySQL
am 27.08.2006 07:58:09 von dmittleiderI'm trying to pull the table information from MySQL using the Catalog()
method and it gives me errors...
Here's an example of my code:
------------------------------------------------------------ -----------------
use Win32::ODBC;
my($db) = new Win32::ODBC("dsn=mysqldb;uid=user;pwd=pass");
if( $db->Catalog( '', '', '', "'TABLE','SYSTEM TABLE'" ) )
{
my %Data;
print "Available tables:\n";
while( $db->FetchRow( %Data ) )
{
print "\t" . $Data{TABLE_NAME} . "\n";
#print "[";
}
}
$db->Close();
------------------------------------------------------------ -----------------
This DSN maps to a database that has just one table in it. When I run
this it gives me an error in ODBC.pm "Use of uninitialized value in
numeric ne (!=) at C:/Perl/site/lib/Win32/ODBC.pm line 291." which I
think is just because it doesn't grab any results from the database.
If I use the db->TableList that works, but I need the schema
information. I don't want to resort to running SQL statements against
the system tables or using any list tables type of statements because
eventually I want to make this portable enough to run on an Oracle
database too so I'm trying to stick to built-in Win32::ODBC methods.
Any ideas anybody?