Deveel.Data.Protocol.ServerConnector.GetResultPart C# (CSharp) Method

GetResultPart() protected method

protected GetResultPart ( int resultId, int startRow, int countRows ) : QueryResultPart
resultId int
startRow int
countRows int
return QueryResultPart
        protected QueryResultPart GetResultPart(int resultId, int startRow, int countRows)
        {
            AssertNotDisposed();

            var table = GetResult(resultId);
            if (table == null)
                throw new InvalidOperationException();

            int rowEnd = startRow + countRows;

            if (startRow < 0 || startRow >= table.RowCount || rowEnd > table.RowCount) {
                throw new InvalidOperationException("Result part out of range.");
            }

            try {
                int colCount = table.ColumnCount;
                var block = new QueryResultPart(colCount);
                for (int r = startRow; r < rowEnd; ++r) {
                    var row = new ISqlObject[colCount];
                    var sizes = new int[colCount];

                    for (int c = 0; c < colCount; ++c) {
                        var value = table.GetValue(r, c);

                        ISqlObject clientOb = null;
                        if (value.Value is IObjectRef) {
                            var reference = (IObjectRef)value.Value;
                            clientOb = new RemoteObjectRef(reference.ObjectId, reference.Size);
                        } else {
                            clientOb = value.Value;
                        }

                        row[c] = clientOb;
                        sizes[c] = value.Size;
                    }

                    block.AddRow(new QueryResultRow(row, sizes));
                }
                return block;
            } catch (Exception) {
                // TODO: Log a warning ...
                throw;
            }
        }

Usage Example

Beispiel #1
0
            private IMessageEnvelope ProcessQueryPart(IDictionary <string, object> metadata, QueryResultPartRequest request)
            {
                try {
                    connector.AssertNotDisposed();
                    connector.AssertAuthenticated();

                    var part = connector.GetResultPart(request.ResultId, request.RowIndex, request.Count);
                    return(connector.CreateEnvelope(metadata, new QueryResultPartResponse(request.ResultId, part)));
                } catch (Exception ex) {
                    // TODO: Log the error ...
                    return(CreateErrorResponse(metadata, ex));
                }
            }
All Usage Examples Of Deveel.Data.Protocol.ServerConnector::GetResultPart