Skip to content

[SecureADODB] Needs an IDbParameter abstraction #3

@retailcoder

Description

@retailcoder

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 dependencies
  • FromValue 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

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions

      pFad - Phonifier reborn

      Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

      Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


      Alternative Proxies:

      Alternative Proxy

      pFad Proxy

      pFad v3 Proxy

      pFad v4 Proxy