private string InitConnectionString(ProviderType provider) { if (!MsAccessDataHelper.HasProvider(provider)) { throw new InvalidOperationException(string.Format(Resources.ProviderNotInstaller, provider.ToString())); } _databasePath = GenerateDatabaseName(); if (!string.IsNullOrEmpty(_sourceDatabasePath)) { File.Copy(_sourceDatabasePath, _databasePath, true); } else if (_sourceDatabaseStream != null) { using (FileStream writer = new FileStream(_databasePath, FileMode.Create, FileAccess.Write)) { _sourceDatabaseStream.CopyTo(writer); } } else { MsAccessDataHelper.CreateEmptyDatabase(_databasePath, provider); } return(MsAccessDataHelper.CreateConnectionString(_databasePath, provider)); }
/// <inheritdoc/> protected override string GetTempTableName() { ProviderType provider = MsAccessDataHelper.GetProviderType(_connection); _tempDatabasePath = Path.GetTempFileName(); MsAccessDataHelper.CreateEmptyDatabase(_tempDatabasePath, provider); _tempDatabase = new OleDbConnection(MsAccessDataHelper.CreateConnectionString(_tempDatabasePath, provider)); _tempDatabase.Open(); return(DestinationTableName); }
private void CreateEmptyDatabaseCore(ProviderType provider) { string emptyDbPath = Path.GetTempFileName(); try { MsAccessDataHelper.CreateEmptyDatabase(emptyDbPath, provider); Action connectToEmptyDbAction = () => { using (var cn = new OleDbConnection(MsAccessDataHelper.CreateConnectionString(emptyDbPath, provider))) { cn.Open(); } }; connectToEmptyDbAction.Should().NotThrow(); } finally { File.Delete(emptyDbPath); } }