public override void TestDbOperations() { string fileName = Path.Combine(_tempDirectory, _tempFilePrefix + "-Odbc-TestDbOps.mdb"); OdbcDba odbcDba = null; try { CreateDb(fileName); odbcDba = new OdbcDba(); odbcDba.ConnectMDB(fileName); PopulateDb(odbcDba); odbcDba.ExecuteSqlCommand(_sqlDropTable); } finally { if (odbcDba != null && odbcDba.Connected) { odbcDba.Disconnect(); odbcDba.Dispose(); } File.Delete(fileName); Assert.IsFalse(File.Exists(fileName), "Failed to delete " + fileName); } }
public override void TestProcedureSupport() { string fileName = Path.Combine(_tempDirectory, _tempFilePrefix + "-Odbc-TestProcedures.mdb"); OdbcDba odbcDba = null; try { CreateDb(fileName); odbcDba = new OdbcDba(); try { Assert.IsTrue(odbcDba.SupportsProcedures); Assert.Fail("OdbcDba.SupportsProcedures should throw a InvalidOperationException if no database is connected."); } catch (InvalidOperationException) {} odbcDba.ConnectMDB(fileName); Assert.IsTrue(odbcDba.SupportsProcedures); } finally { if (odbcDba != null && odbcDba.Connected) { odbcDba.Disconnect(); odbcDba.Dispose(); } File.Delete(fileName); Assert.IsFalse(File.Exists(fileName), "Failed to delete " + fileName); } }
public static void Main(string[] args) { GetOpt oGetOpt = new GetOpt(args); string MdbFile = ""; try { oGetOpt.SetOpts(new string[] { "c", "d=", "s=" }); oGetOpt.Parse(); //DEBUG: Console.WriteLine("Successfully parsed arguments."); } catch (ArgumentException) { Console.Error.WriteLine("ERROR: arguments not supplied"); //TODO: Write usage info function oGetOpt.Args.ToString(); Console.WriteLine(); System.Environment.Exit(666); } if (!oGetOpt.IsDefined("d")) { Console.Error.WriteLine("Must specify the database."); System.Environment.Exit(666); } else { MdbFile = oGetOpt.GetOptionArg("d"); } Console.WriteLine("Database: {0}", MdbFile); try { if (oGetOpt.HasArgument("s")) { Console.WriteLine("SQL Script: {0}", oGetOpt.GetOptionArg("s")); } } catch (ArgumentNullException) { } if (oGetOpt.IsDefined("c")) { if (File.Exists(MdbFile)) { Console.Error.WriteLine("JetSQL file \"{0}\" already exists!", MdbFile); } else { JetSqlUtil.CreateMDB(MdbFile); } } //If the Access file doesn't exist at this point we can't go on if (!File.Exists(MdbFile)) { Console.Error.WriteLine("JetSQL file \"{0}\" does not exist!", MdbFile); } if (oGetOpt.IsDefined("s")) { OdbcDba dbconn = new OdbcDba(); dbconn.ConnectMDB(MdbFile); dbconn.ExecuteSqlFile(oGetOpt.GetOptionArg("s")); dbconn.Disconnect(); } }
void CmdConvertClick(object sender, EventArgs e) { txtLog.Text = String.Format("Start Time: {0}", DateTime.Now.ToLongTimeString()); OdbcDba JetDb = new OdbcDba(); SQLiteDba SQLiteDb = new SQLiteDba(); try { File.Delete(this.SQLiteFile); } catch (IOException) { string Msg = String.Format("Cannot delete the existing SQLite file {0}", SQLiteFile); MessageBox.Show(Msg); return; } try { JetDb.ConnectMDB(this.JetSqlFile); } catch (OdbcException ex) { //TODO: this is the error code for incorrect access password. Make this a constant. if (ex.ErrorCode == -2147217843 || ex.ErrorCode == -2146232009) { DialogResult Result; InputDialog GetPassword = new InputDialog(); Result = GetPassword.ShowDialog("Enter the password for the database"); if (Result == DialogResult.OK) { try { ((OdbcDba)JetDb).ConnectMDB(JetSqlFile, GetPassword.Input); } catch (OdbcException exSecond) { if (ex.ErrorCode == -2147217843 || ex.ErrorCode == -2146232009) { MessageBox.Show("Incorrect Password"); } else { throw exSecond; } return; } finally { GetPassword.Dispose(); } } } else if (ex.ErrorCode == -2147467259) { Text = "PlaneDisaster.NET"; string Msg = String.Format("File [{0}] not found.", JetSqlFile); MessageBox.Show(Msg, "Error Opening File"); return; } else { throw ex; } } SQLiteDb.Connect(this.SQLiteFile); string [] Tables = JetDb.GetTables(); foreach (string Table in Tables) { try { SQLiteDb.DataTable2SQLiteTable(JetDb.GetTableAsDataTable(Table)); } catch (OdbcException ex) { string Message = String.Format("{0}: {1}\n", Table, ex.Message); File.AppendAllText(String.Concat(SQLiteFile, ".log"), Message); } } JetDb.Disconnect(); SQLiteDb.Disconnect(); MessageBox.Show("Database Successfully converted."); txtLog.Text += String.Format(" End Time: {0}", DateTime.Now.ToLongTimeString()); }