public QueryResult ExecuteQuery(string queryText)
        {
            ISession session = cluster.Connect();
            RowSet   rowSet  = session.Execute(queryText);

            QueryResult queryResult = new QueryResult();

            foreach (var column in rowSet.Columns)
            {
                QueryResultColumn queryResultColumn = new QueryResultColumn(column.Name);
                queryResult.Columns.Add(queryResultColumn);
            }

            foreach (var row in rowSet.ToList())
            {
                QueryResultRow queryResultRow = new QueryResultRow();

                foreach (var rowValue in row.ToList())
                {
                    QueryResultRowValue queryResultRowValue = new QueryResultRowValue(rowValue);
                    queryResultRow.RowValues.Add(queryResultRowValue);
                }

                queryResult.Rows.Add(queryResultRow);
            }

            return(queryResult);
        }
示例#2
0
 private void FillColumnData(QuerySetting querySetting)
 {
     for (int i = 0; i < this._OldDataDataTable.Rows.Count; i++)
     {
         QueryResultColumn tc = new QueryResultColumn();
         tc.Name        = this._OldDataDataTable.Rows[i]["ColName"].ToString();
         tc.Description = this._OldDataDataTable.Rows[i]["ColDescription"].ToString();
         tc.DataType    = this.GetDataType(this._OldDataDataTable.Rows[i]["ColType"].ToString());
         querySetting.QueryResultTable.Columns.Add(tc);
     }
 }
        private void CreateResults(IQueryResponse[] response)
        {
            results = new LocalQueryResult[response.Length];

            for (int i = 0; i < response.Length; i++)
            {
                var r       = response[i];
                var columns = new QueryResultColumn[r.ColumnCount];
                for (int j = 0; j < columns.Length; j++)
                {
                    columns[j] = r.GetColumn(j);
                }

                var result = new LocalQueryResult(connection);
                result.QueryTime = r.QueryTimeMillis;

                result.Setup(r.ResultId, columns, r.RowCount);
                result.SetFetchSize(connection.Settings.FetchSize);
                result.SetMaxRowCount(connection.Settings.MaxFetchSize);

                // Does the result set contain large objects?  We can't cache a
                // result that contains binary data.

                bool hasLargeObject = result.HasLargeObject;

                // If the result row count < 40 then download and store locally in the
                // result set and dispose the resources on the server.
                if (!hasLargeObject && result.RowCount < 40)
                {
                    result.DownloadAndClose();
                }
                else
                {
                    result.Download(0, System.Math.Min(10, result.RowCount));
                }

                results[i] = result;
            }
        }