how do I get database and/or table structure for a user dsn or file dsn via Delphi?

is there a component-library free?