Private Sub ExecQueryWithFetchSize(SQL As SQL, FetchSize As Int, Query As String, Args As List) As ResultSet
Dim connection As JavaObject = SQL.As(JavaObject).GetField("connection")
Dim statement As JavaObject = connection.RunMethod("prepareStatement", Array(Query))
statement.RunMethod("setFetchSize", Array(FetchSize))
If Args.IsInitialized Then
For i = 0 To Args.Size - 1
statement.RunMethod("setObject", Array(i + 1, Args.Get(i)))
Next
End If
Dim rs As ResultSet = statement.RunMethod("executeQuery", Null)
Dim ResultSetWrapper As JavaObject
ResultSetWrapper.InitializeStatic("anywheresoftware.b4j.objects.SQL$ResultSetWrapper").GetFieldJO("closePS") _
.RunMethod("put", Array(rs, statement))
Return rs
End Sub