My requirement is to build an application which will connect to a SQL Server database instance and fetch the metadata information from the system tables.

The question now is which technology can I use to communicate with SQL Server so that the application as a whole will be fast. Well my choices are

1. Java
2. C

I know I can use .NET languages but I am considering multi-platform support ("mono" isn't that matured I guess) hence limiting to C and Java.

And my application need not be installed in the target where SQL Server is installed. So the application has to access the database server over the network.

With Java, I know I can use JDBC drivers (jTDS for instance) to connect to the database. Having little exposure in C, can someone help me on how I can connect to SQL Server from C code ? (ODBC ???) Should the target machine have SQL Server client utilities installed for the C application to connect to the database ?

Any help is appreciated.