-
Notifications
You must be signed in to change notification settings - Fork 26
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 PropertyNeeds a StubDbParameter implementation for unit tests, and the DbParameter class needs to property-inject the properties through a number of factory methods:
Createshould take in all dependenciesFromValueshould take in a value (and an optional name, direction, and size)NullValueshould 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