internal override GatewayResult Execute() { Record(); GatewayResult result = new GatewayResult(); RTDataSource rtDataSource = GatewayAdapter.GetDataSource(DataSourceDefinition); //SerializeDatasource(DataSourceDefinition); //Serialize(); if (rtDataSource == null) { rtDataSource = new RTDataSource(DataSourceDefinition); rtDataSource.GatewayAdapter = GatewayAdapter; } // TODO: Access (HDLINFO hdl_info_tbl_.datatbl) // TODO: Foreign keys // share & mode are ignored if (!rtDataSource.IsOpened) { try { DatabaseDefinition dbDefinition = (DatabaseDefinition)DbDefinition.Clone(); UpdateDataBaseLocation(dbDefinition); result.ErrorCode = GatewayAdapter.Gateway.FileOpen(DataSourceDefinition, dbDefinition, FileName, Access, DbShare.Write, DbOpen.Normal, null); } catch (FileNotFoundException ex) { throw new ApplicationException("The SQLite database couldn't be opened.", ex); } } if (result.Success) { rtDataSource.Open(); } SetErrorDetails(result); return(result); }
internal override GatewayResult Execute() { Record(); RTDataSource rtDataSource = GatewayAdapter.GetDataSource(DataSourceDefinition); GatewayResult result = new GatewayResult(); // TODO: Access (HDLINFO hdl_info_tbl_.datatbl) if (rtDataSource != null) { if (rtDataSource.IsLast) { result.ErrorCode = GatewayAdapter.Gateway.FileClose(DataSourceDefinition); } if (result.Success) { rtDataSource.Close(); } SetErrorDetails(result); } return(result); }