/** * Methode um eine Instanz der Klasse CDB_ReadS zu erstellen * param String der Pfad zur Datenbank * return FIDataWrite eine Instanz des Interfaces zur CDB_ReadS */ public static SIDataRead CreateInstance(string dbSourcePath) { SIDataRead dbRead = null; DbProviderFactory dbProviderFactory = DbProviderFactories.GetFactory("System.Data.OleDb"); string connection = $"Provider=Microsoft.ACE.OLEDB.12.0;Data Source={dbSourcePath};"; if (dbProviderFactory == null) { throw new ApplicationException("DbProviderFactory System.Data.OleDb konnte nicht erzeugt werden"); } dbRead = new CDB_ReadS(dbProviderFactory, connection); return(dbRead); }
private SIDataRead _dbRead; //Initialisieren des Datenbank-Interfaces //LogicQuerie Konstruktor public SLogicQueries(SIDataRead dbRead) { Log.D("SLogicQueries.Ctor()", ""); _dbRead = dbRead; }
public static ISLogicQueries CreateInstance(SIDataRead dbRead) { return(new SLogicQueries(dbRead)); }
void Run() { // MSAccess _dataSourcePath = @"seasky.accdb"; // SQLite //_dataSourcePath = @"C:\0Daten\CarDatabase.db"; try { // FlightData Layer _FdataRead = SFDB_ReadF.CreateInstance(_dataSourcePath); _FdataRead.InitDb(); _FdataWrite = SFDB_WriteF.CreateInstance(_dataSourcePath); _FdataWrite.InitDb(); // ShipInfoData Layer _SdataRead = SFDB_ReadS.CreateInstance(_dataSourcePath); _SdataRead.InitDb(); _SdataWrite = SFDB_WriteS.CreateInstance(_dataSourcePath); _SdataWrite.InitDb(); // FlightLogic Layer _FlogicQueries = FFactoryQueries.CreateInstance(_FdataRead); _FlogicCommands = FFactoryILogicCmds.CreateInstance(_FdataWrite); // FlightLogic Layer _SlogicQueries = SFactoryISLogicQueries.CreateInstance(_SdataRead); _SlogicCommands = SFactoryISLogicCommands.CreateInstance(_SdataWrite); // CarPresentation Layer _dialog = SFactoryIDialog.CreateInstance(_FlogicQueries, _FlogicCommands, _SlogicQueries, _SlogicCommands); // Start the App _app = new Application(); _app.Run(_dialog as Window); } catch (ApplicationException e) { MessageBox.Show(e.Message, "Fehler in der Anwendung 1", MessageBoxButton.OK, MessageBoxImage.Stop); } catch (Exception e) { MessageBox.Show(e.Message, "Fehler in der Anwendung 2", MessageBoxButton.OK, MessageBoxImage.Stop); } finally { if (_FdataRead != null) { _FdataRead.CloseDb(); } if (_FdataWrite != null) { _FdataWrite.CloseDb(); } if (_SdataRead != null) { _SdataRead.CloseDb(); } if (_SdataWrite != null) { _SdataWrite.CloseDb(); } } }