どういうわけか次のようなストアドプロシージャがあります
create SP_justest
(@datefrom as smalldatetime,
@dateto as smalldatetime,
@rank as varchar(1),
@Filter as varchar(8000)
)
select * from finhours
where (div_cde = @filter)
and date_from = @datefrom
and date_to = @dateto
and rank = @rank
GO
したがって、vb.netには、ストアドプロシージャを呼び出すサブルーチンがあります。これは、サブルーチンの正確なコードです。
Private Sub InsertPayRollRecords()
Try
'SQLConn.Open()
sqlcomm.CommandText = "dbo.SP_INSERTVALUESINTOPR"
sqlcomm.CommandType = CommandType.StoredProcedure
sqlcomm.Parameters.Add("@DATEFROM", DateValue(dtpCFrom.Value))
sqlcomm.Parameters.Add("@DATETO", DateValue(dtpCTo.Value))
sqlcomm.Parameters.Add("@RANK", rank)
sqlcomm.Parameters.Add("@FILTER", ReturnDivision())
sqlcomm.Connection = SQLConn
sqlcomm.CommandTimeout = 999999
sqlcomm.ExecuteNonQuery()
Catch ex As Exception
MsgBox(ex.ToString)
End Try
End Sub
@filterの値は次のようになります。
'AP0' OR div_cde = 'FO0' OR div_cde = 'ME0' OR div_cde = 'SO0' OR div_cde = 'XO0'
問題は、これをVB.net 2000から起動したときに、エラーがまったく発生しないことです。