public static Hubble.Framework.Data.DataSet ToDataSet(List <Field> schema, List <Document> docs) { Hubble.Framework.Data.DataTable dt = new Hubble.Framework.Data.DataTable(); foreach (Field field in schema) { Hubble.Framework.Data.DataColumn col = new Hubble.Framework.Data.DataColumn(field.Name, DataTypeConvert.GetClrType(field.DataType)); dt.Columns.Add(col); } foreach (Document doc in docs) { Hubble.Framework.Data.DataRow row = dt.NewRow(); foreach (FieldValue fv in doc.FieldValues) { if (fv.Value == null) { row[fv.FieldName] = System.DBNull.Value; } else { Type type = DataTypeConvert.GetClrType(fv.Type); if (fv.Type == DataType.TinyInt) { bool bitValue; //check the bit data type of database if (bool.TryParse(fv.Value, out bitValue)) { if (bitValue) { row[fv.FieldName] = (byte)1; } else { row[fv.FieldName] = (byte)0; } continue; } } row[fv.FieldName] = System.ComponentModel.TypeDescriptor.GetConverter(type).ConvertFrom(fv.Value); } } dt.Rows.Add(row); } Hubble.Framework.Data.DataSet ds = new Hubble.Framework.Data.DataSet(); ds.Tables.Add(dt); return(ds); }
public void Run() { Global.UserRightProvider.CanDo(Right.RightItem.Select); if (Parameters.Count < 2) { throw new ArgumentException("Parameter 1 is select statement before where. Parameter 2 - n is docids."); } string sql = Parameters[0]; SFQL.Parse.SFQLParse sfqlParse = new Hubble.Core.SFQL.Parse.SFQLParse(); sfqlParse.SyntaxAnalyse(sql); SFQL.SyntaxAnalysis.Select.Select select = sfqlParse.SFQLSentenceList[0].SyntaxEntity as SFQL.SyntaxAnalysis.Select.Select; string tableName = select.SelectFroms[0].Name; Data.DBProvider dbProvider = Data.DBProvider.GetDBProvider(tableName); if (dbProvider == null) { throw new Data.DataException(string.Format("Invalid table:{0}", tableName)); } List <Data.Field> fields; int allFieldsCount; sfqlParse.GetSelectFields(select, dbProvider, out fields, out allFieldsCount); Query.DocumentResultForSort[] docs = new Hubble.Core.Query.DocumentResultForSort[Parameters.Count - 1]; for (int i = 1; i < Parameters.Count; i++) { docs[i - 1] = new Hubble.Core.Query.DocumentResultForSort(int.Parse(Parameters[i])); } List <Data.Document> docResult = dbProvider.Query(fields, docs); Hubble.Framework.Data.DataSet ds = Data.Document.ToDataSet(fields, docResult); ds.Tables[0].TableName = "Select_" + select.SelectFroms[0].Alias; _QueryResult.DataSet = ds; }
public QueryResult(Hubble.Framework.Data.DataSet dataSet) { DataSet = dataSet; }
public QueryResult(string printMessage, Hubble.Framework.Data.DataSet dataSet) { _PrintMessages.Add(printMessage); DataSet = dataSet; }