John W. Colby
jwcolby at colbyconsulting.com
Fri Aug 26 08:15:02 CDT 2005
I have designed a class, with the New widget (constructor) having a set of
parameters, with the parameters type declared.
New(ByVal lintPKID As Int32, ByVal lstrForeignName As String, ByVal
lstrLocalName As String, _
ByVal lintLen As Int16, ByVal lintPosStart As Int16,
ByVal lintPosStop As Int16, _
ByVal lblnActive As Boolean, ByVal lblnCritical As
Boolean, _
ByVal lstrForeignDescr As String, ByVal lstrLocalDescr
As String, _
ByVal lstrFmt As String, ByVal lblnRightJustified As
Boolean, ByVal lstrNotes As String)
The problem I am running in to is that I am loading this stuff from a table.
I have a class that I initialize, which returns a data reader, and I take
the fields from the reader and pass the values in as follows:
Dim lclsData As clsData
Dim lDr As OleDbDataReader
lclsData = New clsData(lstrDataProvider, lstrDataSrc) 'Get an
instance of clsData
lclsData.pSQL = "SELECT * FROM " & lstrTblName & " WHERE ACTIVE =
True;" 'Set the SQL statement
If lclsData.mDrOpen() Then 'Open the reader
Dim lclsFld As clsFld 'dim a variable to hold clsFld instances
lDr = lclsData.pDR 'Get the data reader
While lDr.Read() 'Cycle through the field format records
'Loading the data from each field format record into the
clsFld instance
lclsFld = New clsFld(lDr("PKID"), lDr("ForeignFldName"),
lDr("LocalFldName"), _
lDr("Length"), lDr("PosStart"),
lDr("PosStop"), _
lDr("Active"), lDr("Critical"), _
lDr("ForeignDescr"),
lDr("LocalDescr"), _
lDr("Format"),
lDr("RightJustified"), lDr("Notes"))
The last line is pulling null values out of the "RightJustified" and "Notes"
fields and trying to pass them in. The program is throwing a runtime error
- "cast from type dbNull to type String not valid"
In this specific case I can go in and "fix" the source data but how do I
handle this if nulls are a valid possibility and I want them to be allowed
to be passed in? Do I need to change my parameter type to object (or
untyped)?
John W. Colby
www.ColbyConsulting.com
Contribute your unused CPU cycles to a good cause:
http://folding.stanford.edu/