-
Notifications
You must be signed in to change notification settings - Fork 25
Open
Description
Having an IDbParameter
interface, and tweaking IDbCommand.Execute
methods' ParamArray
handling to accept it, would allow providing named and output parameters inline, without needing to deal with ADODB.Parameter
directly.
The interface should expose the ADODB.Parameter
object (much like DbConnection
exposes the ADODB.Connection
object) - this should fit the bill:
'@Interface
'@ModuleDescription("An object representing a command parameter.")
Option Explicit
Public Property Get Parameter() As ADODB.Parameter
End Property
Public Property Get ParameterName() As String
End Property
Public Property Get ParameterValue() As Variant
End Property
Public Property Get ParameterType() As ADODB.DataTypeEnum
End Property
Public Property Get ParameterDirection() As ADODB.ParameterDirectionEnum
End Property
Public Property Get ParameterSize() As Long
Public Property Get IsNamedParameter() As Boolean
End Property
Needs a StubDbParameter
implementation for unit tests, and the DbParameter
class needs to property-inject the properties through a number of factory methods:
Create
should take in all dependenciesFromValue
should take in a value (and an optional name, direction, and size)NullValue
should take in a data type (and an optional name, direction, and size)
The IsNamedParameter
get-only property should return True
if a name
was supplied. Unit tests should validate that a command doesn't accept mixed named & ordinal parameters.
Metadata
Metadata
Assignees
Labels
No labels