Debian GNU/Linux 6.0 - Mono - System.Data.OleDb és a libgda esete

Fórumok

Kénytelen vagyok Debian GNU/Linux 6.0-án Mono rendszert használni, mert a munkahelyen .Net kell. Kellene egy kis adatbázis-kezeléssel foglalkoznom. Találtam a C#-hoz egy jó kis névteret:

System.Data.OleDb;

Meg is írtam hozzá első, kis minimális progit:

using System;
using System.Data.OleDb;
using System.Data;
class Program
{
public static void Main()
{
//~ OleDbConnection con = new OleDbConnection("Server=localhost;Database=mysql;Uid=root;Pwd=1111;");
OleDbConnection con = new OleDbConnection("Data Source=test;Version=3;");

OleDbCommand com = new OleDbCommand("", con);
com.CommandType = CommandType.Text;
con.Open();
com.CommandText = "SELECT * FROM user";
OleDbDataReader adat = com.ExecuteReader();

con.Close();

}
}

Le is fordul, aminek nagyban örülök. Vagy MySQL-t vagy SQLite-ra gondoltam.
Nézzük...

Futtatáskor már gond van:

Unhandled Exception: System.DllNotFoundException: libgda-2.so.3
at (wrapper managed-to-native) System.Data.OleDb.libgda:gda_init (string,string,int,string[])
at System.Data.OleDb.OleDbConnection.Open () [0x00000] in :0
at (wrapper remoting-invoke-with-check) System.Data.OleDb.OleDbConnection:Open ()
at Program.Main () [0x00000] in :0

Hiányolja a libgda-2.so.3-at. Na jó utána nézünk:

ls /usr/lib/libgda*
apt-cache search libgda

Persze már csak libgda-4.0-4. van.
Nem baj átlinkelem, hátha:

ln -s /usr/lib/libgda-4.0.so.4 /usr/lib/libgda-2.so.3

A probléma megszűnik. De van helyette más.

Unhandled Exception: System.EntryPointNotFoundException: gda_client_new
at (wrapper managed-to-native) System.Data.OleDb.libgda:gda_client_new ()
at System.Data.OleDb.libgda.get_GdaClient () [0x00000] in :0
at System.Data.OleDb.OleDbConnection.Open () [0x00000] in :0
at (wrapper remoting-invoke-with-check) System.Data.OleDb.OleDbConnection:Open ()
at Program.Main () [0x00000] in :0

Bosszantó. A mononak régi libgda kell, nekem meg csak újabb van. Ennyit az OleDb Linuxonon és Windowson való párhuzamos használatáról. Hova tovább?