1. EachPod

HPR4405: What did I do at work today?

Author
[email protected] (Lee)
Published
Fri 20 Jun 2025
Episode Link
https://hackerpublicradio.org/eps/hpr4405/index.html

This is about developing Visual Basic classes for a web application. The classes access an SQL Server database via Stored Procedures.

Tests.vb

Private Sub ResourceTypeTests()
ResourceTypeAddTest()
ResourceTypeGetTest()
End Sub

Private Sub ResourceTypeAddTest()
Dim fake As New Fake

Console.WriteLine("Adding resource type")
Console.WriteLine()

Dim objResourceType As New ResourceType With {
.ResourceTypeID = 0,
.ResourceTypeName = fake.Noun
}
OutputResourceType(objResourceType)
Dim ResourceTypeID As Integer = objResourceType.Add()
Console.WriteLine("Added Resource Type ID " & ResourceTypeID)
Console.WriteLine()

Console.WriteLine("Modifying resource type with ID " & ResourceTypeID)
Console.WriteLine()

fake = New Fake
With objResourceType
.ResourceTypeID = ResourceTypeID
.ResourceTypeName = fake.Noun
End With
Console.WriteLine("Modification")
OutputResourceType(objResourceType)
Dim newResourceTypeID As Integer = objResourceType.Add()
Console.WriteLine("Modified ResourceTypeID " & newResourceTypeID)
Console.WriteLine()
End Sub

Private Sub ResourceTypeGetTest()
Console.WriteLine("Fetching resource types")
Console.WriteLine()
Dim objResourceType As New ResourceType()
Dim ResourceTypeList As List(Of ResourceType) = objResourceType.GetResourceTypes()
For Each ResourceType As ResourceType In ResourceTypeList
OutputResourceType(ResourceType)
Next
End Sub

Private Sub OutputResourceType(ResourceType As ResourceType)
Console.WriteLine("Resource Type ID " & ResourceType.ResourceTypeID)
Console.WriteLine("Resource Type Name " & ResourceType.ResourceTypeName)
Console.WriteLine()
End Sub

ResourceType.vb

Public Class ResourceType
Private m_ResourceTypeID As Integer
Private m_ResourceTypeName As String

Private ReadOnly dataFields As New List(Of String) From {
"ResourceTypeID", "ResourceTypeName"
}

Private ReadOnly objFields = dataFields

Dim objGlobals As New Globals
Dim _ConnectionString As String = objGlobals.getConnectionString()

Property ResourceTypeID As Integer
Get
ResourceTypeID = m_ResourceTypeID
End Get
Set(value As Int32)
m_ResourceTypeID = value
End Set
End Property

Property ResourceTypeName As String
Get
ResourceTypeName = m_ResourceTypeName
End Get
Set(value As String)
m_ResourceTypeName = value
End Set
End Property

Public Function Add() As Int32
Dim ReturnValue As Int32
Try
ReturnValue = StoredProcOutInt(
_ConnectionString, "dbo.ResourceType_Add", Me,
dataFields, objFields, "NewResourceTypeID"
)
Catch ex As Exception
ErrorRecorder("Resource.Add", ex.Message, ex.Data.ToString)
ReturnValue = 0
End Try
Return ReturnValue
End Function

Public Function GetResourceTypes() As List(Of ResourceType)
Dim ObjResourceTypes As New List(Of ResourceType)
Try
StoredProc(Of ResourceType)(
_ConnectionString, "dbo.ResourceType_Get",
dataFields, objFields, ObjResourceTypes
)
Catch ex As Exception
ErrorRecorder("ResourceType.GetResourceTypes", ex.Message, ex.Data.ToString)
End Try
Return ObjResourceTypes
End Function
End Class

ResourceType_Add.sql

SET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS ON
GO

CREATE PROCEDURE [dbo].[ResourceType_Add]
@ResourceTypeID INT,
@Resou

Share to: