private int[][] GetBlockAddresses(long lobId, int offset, int limit) { object[] args = new object[this._getLobPart.GetParametersMetaData().GetColumnCount()]; args[0] = lobId; args[1] = offset; args[2] = limit; this._sysLobSession.sessionContext.PushDynamicArguments(args); this._sysLobSession.sessionContext.Pop(false); RowSetNavigator navigator = this._getLobPart.Execute(this._sysLobSession).GetNavigator(); int size = navigator.GetSize(); int[][] numArray = new int[size][]; for (int i = 0; i < size; i++) { navigator.Absolute(i); object[] current = navigator.GetCurrent(); numArray[i] = new int[] { Convert.ToInt32(current[0]), Convert.ToInt32(current[1]), Convert.ToInt32(current[2]) }; } navigator.Close(); return(numArray); }