string connectionString;
int connectionTimeout;
- OleDbDataReader dataReader;
- bool dataReaderOpen;
IntPtr gdaConnection;
#endregion
}
public string ServerVersion {
- [MonoTODO]
get {
- throw new NotImplementedException ();
+ if (gdaConnection != IntPtr.Zero
+ && libgda.gda_connection_is_open (gdaConnection)) {
+ return libgda.gda_connection_get_server_version (gdaConnection);
+ }
+
+ return null;
}
}
return gdaConnection;
}
}
-
+
#endregion // Properties
#region Methods
public void ChangeDatabase (string name)
{
- // FIXME: see http://bugzilla.gnome.org/show_bug.cgi?id=83315
+ if (gdaConnection == IntPtr.Zero)
+ throw new ArgumentException ();
+ if (State != ConnectionState.Open)
+ throw new InvalidOperationException ();
+
+ if (!libgda.gda_connection_change_database (gdaConnection, name))
+ throw new OleDbException (this);
}
public void Close ()
{
- if (gdaConnection != IntPtr.Zero) {
+ if (State == ConnectionState.Open) {
libgda.gda_connection_close (gdaConnection);
gdaConnection = IntPtr.Zero;
}
public OleDbCommand CreateCommand ()
{
- if (gdaConnection != IntPtr.Zero
- && libgda.gda_connection_is_open (gdaConnection))
+ if (State == ConnectionState.Open)
return new OleDbCommand (null, this);
return null;
public void Open ()
{
+ string provider = "Default";
+ string gdaCncStr = "";
+ string[] args;
+ int len;
+ char [] separator = { ';' };
+
if (State == ConnectionState.Open)
throw new InvalidOperationException ();
gdaConnection = libgda.gda_client_open_connection (libgda.GdaClient,
- connectionString,
- "", "");
+ connectionString,
+ "", "", 0);
+
+ /* convert the connection string to its GDA equivalent */
+ //args = connectionString.Split (';');
+ //len = args.Length;
+ //for (int i = 0; i < len; i++) {
+ // string[] values = args[i].Split (separator, 2);
+ // if (values[0] == "Provider") {
+ // if (values[1] == "SQLOLEDB")
+ // provider = "FreeTDS";
+ // else if (values[1] == "MSDAORA")
+ // provider = "Oracle";
+ // else if (values[2] == "Microsoft.Jet.OLEDB.4.0")
+ // provider = "MS Access";
+ // else
+ // provider = values[2];
+ // }
+ // else if (values[0] == "Addr" || values[0] == "Address")
+ // gdaCncStr = String.Concat (gdaCncStr, "HOST=", values[1], ";");
+ // else if (values[0] == "Database")
+ // gdaCncStr = String.Concat (gdaCncStr, "DATABASE=", values[1], ";");
+ // else if (values[0] == "Connection Lifetime")
+ // connectionTimeout = System.Convert.ToInt32 (values[1]);
+ // else if (values[0] == "File Name")
+ // gdaCncStr = String.Concat (gdaCncStr, "FILENAME=", values[1], ";");
+ // else if (values[0] == "Password" || values[0] == "Pwd")
+ // gdaCncStr = String.Concat (gdaCncStr, "PASSWORD=", values[1], ";");
+ // else if (values[0] == "User ID")
+ // gdaCncStr = String.Concat (gdaCncStr, "USERNAME=", values[1], ";");
+ //}
+
+ /* open the connection */
+ //System.Console.WriteLine ("Opening connection for provider " +
+ // provider + " with " + gdaCncStr);
+ //gdaConnection = libgda.gda_client_open_connection_from_string (libgda.GdaClient,
+ // provider,
+ // gdaCncStr);
}
[MonoTODO]