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?
- 1868 megtekintés