Public Function GetRowVersions(ByVal BizO As BizObject, ByVal TableName As String, ByVal URIDs As Integer()) As Long()
Dim DSL As New DAS(BizO)
Dim RowVersions As New Hashtable
Dim Results As Long()
Dim Row As DataRow
Dim StepOn As Integer = 5000
Dim TmpIDList As ArrayList = New ArrayList
Try
'''Mod by bingle 2010-6-11 这里做大数据量的分批处理
Dim DT As DataTable
Dim StepCount As Integer = 0
For i As Integer = 0 To URIDs.Length - 1 Step StepOn
TmpIDList.Clear()
For j As Integer = i To i + StepOn - 1
If j >= URIDs.Length Then
Exit For
End If
TmpIDList.Add(URIDs(j))
Next j
DT = DSL.ExecuteDataTable(String.Format(SQL_ROWVERSIONS, _
TableName, DSL.VarToSql("URID", CType(TmpIDList.ToArray(GetType(Integer)), Integer()))))
If Not DT Is Nothing AndAlso DT.Rows.Count > 0 Then
For k As Integer = 0 To DT.Rows.Count - 1
Row = DT.Rows(k)
RowVersions.Add(Convert.ToInt32(Row(1)), CLng(Row(0)))
Next
Else
Return Nothing
End If
Next i
Results = New Long(URIDs.Length - 1) {}
For i As Integer = 0 To Results.Length - 1
If RowVersions.Contains(Convert.ToInt32(URIDs(i))) Then
Results(i) = CLng(RowVersions(Convert.ToInt32(URIDs(i))))
End If
Next
Return Results
Catch Ex As Exception
If TableName Is Nothing Then
TableName = String.Empty
End If
Biz.Trace.Exception("GetRowVersions() failed. TableName: " & TableName, ENT.ERROR Or ENT.LEVEL2, BizO, Ex)
Return Nothing
Finally
'DSL.SetComplete()
End Try
End Function