src/Invoke-Reader.psm1
|
using module ./New-Command.psm1 using module ./Mapping/DataAdapter.psm1 using module ./Mapping/DataMapper.psm1 <# .SYNOPSIS Executes a parameterized SQL query and returns a data reader. .PARAMETER Connection The connection to the data source. .PARAMETER Command The SQL query to be executed. .PARAMETER Parameters The parameters of the SQL query. .OUTPUTS An object with a `Reader` property containing the data reader that can be used to iterate over the results of the SQL query. #> function Invoke-Reader { [CmdletBinding()] [OutputType([DataAdapter])] param ( [Parameter(Mandatory, Position = 0)] [System.Data.IDbConnection] $Connection, [Parameter(Mandatory, Position = 1)] [string] $Command, [Parameter(Position = 2)] [ValidateNotNull()] [hashtable] $Parameters = @{} ) if ($Connection.State -eq [System.Data.ConnectionState]::Closed) { $Connection.Open() } $dbCommand = New-Command $Connection -Command $Command -Parameters $Parameters $reader = $dbCommand.ExecuteReader() $dbCommand.Dispose() [DataAdapter]@{ Mapper = [DataMapper]::new(); Reader = $reader } } |