IEnumerable <ITreeNode> ITreeNode.GetChildren(bool refresh) { var cb = new SqlCommandBuilder(); var commandText = string.Format(@"select i.name, i.index_id, i.type, i.is_unique from {0}.sys.schemas s (nolock) join {0}.sys.objects o (nolock) on s.schema_id = o.schema_id join {0}.sys.indexes i (nolock) on o.object_id = i.object_id where o.object_id = @object_id order by i.name", cb.QuoteIdentifier(_databaseNode.Name)); var parameters = new SqlParameterCollectionBuilder(); parameters.Add("object_id", _id); var request = new ExecuteReaderRequest(commandText, parameters.ToReadOnlyCollection()); var connectionString = _databaseNode.Databases.Server.ConnectionString; var executor = new SqlCommandExecutor(connectionString); return(executor.ExecuteReader(request, 128, dataRecord => { var name = dataRecord.GetStringOrDefault(0); var indexId = dataRecord.GetInt32(1); var type = dataRecord.GetByte(2); var isUnique = dataRecord.GetBoolean(3); return new IndexNode(_databaseNode, _id, indexId, name, type, isUnique); })); }
public static DataTable ExecuteDataTable(this IDbCommandExecutor executor, ExecuteReaderRequest request) { Assert.IsNotNull(executor); DataTable dataTable = null; executor.Execute(request.CreateCommandRequest, command => { dataTable = command.ExecuteDataTable(request.CancellationToken); }); return(dataTable); }
public static ReadOnlySegmentLinkedList <T> ExecuteReader <T>(this DbProviderFactory dbProviderFactory, string connectionString, ExecuteReaderRequest request, int segmentLength, Func <IDataRecord, T> readRecord) { ReadOnlySegmentLinkedList <T> rows = null; dbProviderFactory.ExecuteReader(connectionString, request, dataReader => rows = dataReader.ReadResult(segmentLength, readRecord)); return(rows); }
public static DataSet ExecuteDataSet(this IDbCommandExecutor executor, ExecuteReaderRequest request) { ArgumentNullException.ThrowIfNull(executor); ArgumentNullException.ThrowIfNull(request); DataSet dataSet = null; executor.Execute(request.CreateCommandRequest, command => { dataSet = command.ExecuteDataSet(request.CancellationToken); }); return(dataSet); }
public static Task ExecuteReaderAsync(this IDbCommandAsyncExecutor executor, ExecuteReaderRequest request, Func <DbDataReader, Task> readResults) { return(executor.ExecuteAsync( new ExecuteNonReaderRequest(request.CreateCommandRequest, request.CancellationToken), async command => { using (var dataReader = await command.ExecuteReaderAsync(request.CommandBehavior, request.CancellationToken)) await readResults(dataReader); })); }
public static void ExecuteReader(this IDbCommandExecutor executor, ExecuteReaderRequest request, Action <IDataReader> readResults) { Assert.IsNotNull(executor); Assert.IsNotNull(request); executor.Execute(request.CreateCommandRequest, command => { using (var dataReader = command.ExecuteReader(request.CommandBehavior)) readResults(dataReader); }); }
IEnumerable <ITreeNode> ITreeNode.GetChildren(bool refresh) { const string commandText = @"select name from sys.server_principals sp (nolock) where sp.type in('S','U','G') order by name"; var request = new ExecuteReaderRequest(commandText); var executor = new SqlCommandExecutor(_server.ConnectionString); return(executor.ExecuteReader(request, 128, dataRecord => new LoginNode(dataRecord.GetString(0)))); }
IEnumerable <ITreeNode> ITreeNode.GetChildren(bool refresh) { var connectionString = _databaseCollectionNode.Server.ConnectionString; const string commandText = @"select name from sys.databases d where d.source_database_id is not null order by 1"; var executeReaderRequest = new ExecuteReaderRequest(commandText); return(SqlClientFactory.Instance.ExecuteReader(connectionString, executeReaderRequest, 128, ReadDatabaseNode)); }
private async Task <GetInvoicesDbQueryResult> ExecuteReaderAsync(ExecuteReaderRequest request) { GetInvoicesDbQueryResult result = null; var connection = (DbConnection)_connection; var executor = connection.CreateCommandAsyncExecutor(); await executor.ExecuteReaderAsync(request, async dataReader => { var invoices = (await dataReader.ReadResultAsync(128, ReadInvoice, request.CancellationToken)); result = new GetInvoicesDbQueryResult(invoices); }); return(result); }
private GetInvoicesDbQueryResult ExecuteReader(ExecuteReaderRequest request) { GetInvoicesDbQueryResult result = null; var executor = _connection.CreateCommandExecutor(); executor.ExecuteReader(request, dataReader => { var invoices = dataReader.ReadResult(128, ReadInvoice); result = new GetInvoicesDbQueryResult(invoices); }); return(result); }
IEnumerable <ITreeNode> ITreeNode.GetChildren(bool refresh) { const string commandText = @"declare @provider nvarchar(128) select @provider = s.provider from sys.servers s (nolock) where s.name = @name create table #catalog ( CATALOG_NAME nvarchar(128), DESCRIPTION nvarchar(255) ) insert into #catalog execute sp_catalogs 'UKSECPRSD98\EUR' if @provider = 'SQLNCLI' begin select c.CATALOG_NAME from #catalog c where (@getSystemCatalogs = 0 and c.CATALOG_NAME not in('master','model','msdb','tempdb')) or (@getSystemCatalogs = 1 and c.CATALOG_NAME in('master','model','msdb','tempdb')) order by c.CATALOG_NAME end else begin select c.CATALOG_NAME from #catalog c order by c.CATALOG_NAME end drop table #catalog"; using (var connection = new SqlConnection(_linkedServer.LinkedServers.Server.ConnectionString)) { connection.Open(); var parameters = new SqlParameterCollectionBuilder(); parameters.Add("@name", _linkedServer.Name); parameters.Add("@getSystemCatalogs", false); var executor = connection.CreateCommandExecutor(); var executeReaderRequest = new ExecuteReaderRequest(commandText, parameters.ToReadOnlyCollection()); return(executor.ExecuteReader(executeReaderRequest, 128, dataRecord => new LinkedServerCatalogNode(_linkedServer, dataRecord.GetString(0)))); } }
public static ReadOnlySegmentLinkedList <T> ExecuteReader <T>(this IDbCommandExecutor executor, ExecuteReaderRequest request, int segmentLength, Func <IDataRecord, T> readRecord) { Assert.IsNotNull(executor); ReadOnlySegmentLinkedList <T> rows = null; executor.ExecuteReader(request, dataReader => rows = dataReader.ReadResult(segmentLength, readRecord)); return(rows); }
public static void ExecuteReader(this DbProviderFactory dbProviderFactory, string connectionString, ExecuteReaderRequest request, Action <IDataReader> read) { using (var connection = dbProviderFactory.CreateConnection()) { connection.ConnectionString = connectionString; connection.Open(); var executor = connection.CreateCommandExecutor(); executor.ExecuteReader(request, read); } }
public static async Task <ReadOnlySegmentLinkedList <T> > ExecuteReaderAsync <T>(this IDbCommandAsyncExecutor executor, ExecuteReaderRequest request, int segmentLength, Func <IDataRecord, T> read) { ReadOnlySegmentLinkedList <T> records = null; await executor.ExecuteReaderAsync( request, async dataReader => records = await dataReader.ReadResultAsync(segmentLength, read, request.CancellationToken)); return(records); }