public static IList <StormResult> ToResults(StormDataSet data, SchemaNavigator navigator, List <Origin> requests, OriginTree fromTree) { var root = navigator.GetEntity(data.root); var ranges = data.ObjectRanges; var primaryKeys = data.IdentityIndexes; var items = new Dictionary <EntityPath, Dictionary <object, StormResult> >(); var results = new List <StormResult>(); for (int i = 0; i < data.Count(); i++) { var ctx = new RecCtx() { Data = data, Index = i, PrimaryKeys = primaryKeys, Ranges = ranges, Root = root }; var(pk, r) = CreateResult(fromTree.root, ctx); if (!results.Any(x => x.PrimaryKey == pk)) { results.Add(r); } r = results.First(x => x.PrimaryKey == pk); CreateResultRelations(ctx, requests.Where(x => x.FullPath != fromTree.root.FullPath).ToList(), r); } return(results); }
internal BaseCommand(SchemaNavigator navigator, String from) { this.navigator = navigator; this.rootEntity = navigator.GetEntity(from).ID; this.query = new Query($"{navigator.GetEntity(from).DBName} as A0"); commandId = Helpers.Util.UCode(); sw = new Stopwatch(); }
/// <summary></summary> public override bool HasMaxLength(DataSet dataSchema, DataRowView rowColumn) { SchemaNavigator sn = new SchemaNavigator(dataSchema); //CHARACTER_MAXIMUM_LENGTH bool isNull = rowColumn["CHARACTER_MAXIMUM_LENGTH"] == DBNull.Value; return(!isNull); }
internal StormConnection(SchemaNavigator navigator, IDbConnection connection, SQLEngine engine) { isOpen = false; this.navigator = navigator; this.connection = connection; this.engine = engine; this.connectionId = Util.UCode(); }
internal DeleteCommand(SchemaNavigator navigator, String from) : base(navigator, from) { this.from = new OriginTree() { navigator = navigator, root = new Origin() { Alias = "", FullPath = new EntityPath(from, ""), Edge = null, Entity = navigator.GetEntity(from), children = new List <Origin>() } }; ((BaseCommand)this).CommandLog(LogLevel.Info, "DeleteCommand", $"{{\"Action\":\"Delete\", \"Entity\":\"{from}\"}}"); }
public override string GetPrimaryKey(DataSet dataSchema, DataRowView rowColumn) { SchemaNavigator sn = new SchemaNavigator(dataSchema); string tablename = rowColumn.GetString("TABLE_NAME"); string output = null; using (DataView v = sn.ViewIndexes) { // output = (from u in v where u.TABLE_NAME == tablename select u).FirstOrDefault().GetString("INDEX_NAME"); foreach (DataRowView row in v) { if (row.GetString("TABLE_NAME") == tablename) { output = row.GetString("TABLE_NAME"); } } } sn = null; return(output); }
/// <summary></summary> // public override AccessDataTypes GetNativeType(DataSet dataSchema, DataRowView rowColumn) // { // SchemaNavigator sn = new SchemaNavigator(dataSchema); // string typename = rowColumn.GetString("DATA_TYPE"); // bool hasmax = HasMaxLength(dataSchema,rowColumn); // int maxlen = (hasmax) ? GetMaxLength(dataSchema,rowColumn) : -1; // // switch (typename) // { // case "3": // autoincr,number // return AccessDataTypes.Number; // case "6": // currency // return AccessDataTypes.Currency; // case "7": // datetime // return AccessDataTypes.DateTime; // case "11": // yesno // return AccessDataTypes.YesNo; // case "130": // Memo,Hyperlink // if (hasmax && (maxlen >0) && (maxlen <= 255)) // { // return AccessDataTypes.Text; // } // return AccessDataTypes.Memo; // case "128": // Ole // return AccessDataTypes.Ole; // } // // string output = null; // using (DataView v = sn.ViewDataTypes) // { // foreach (DataRowView row in v) // if (row.GetString("NativeDataType")==typename) // output = row.GetString("NativeDataType"); // } // return (AccessDataTypes) Enum.Parse(typeof(AccessDataTypes),output); // } #endregion /// <summary></summary> public override TypeCode GetDataType(DataSet dataSchema, DataRowView rowColumn) { SchemaNavigator sn = new SchemaNavigator(dataSchema); string typename = rowColumn.GetString("DATA_TYPE"); string output = null; using (DataView v = sn.ViewDataTypes) { foreach (DataRowView row in v) { if (row.GetString("NativeDataType") == typename) { output = row.GetString("NativeDataType"); } } } if (output == null) { return(TypeCode.Empty); } output = output.Replace("System.", ""); return((TypeCode)Enum.Parse(typeof(TypeCode), output)); }
public SelectCommand(SchemaNavigator navigator, string from) : base(navigator, from) { }
internal SetCommand(SchemaNavigator navigator, String from, Object id) : base(navigator, from) { this.id = id; entity = navigator.GetEntity(this.rootEntity); ((BaseCommand)this).CommandLog(LogLevel.Info, "SetCommand", $"{{\"Action\":\"Insert\", \"Entity\":\"{from}\"}}"); }
internal SetCommand(SchemaNavigator navigator, String from) : base(navigator, from) { entity = navigator.GetEntity(this.rootEntity); ((BaseCommand)this).CommandLog(LogLevel.Info, "SetCommand", $"{{\"Action\":\"Update\", \"Entity\":\"{from}\"}}"); }
public SQLFromParser(OriginTree fromTree, SchemaNavigator schemaNavigator, Query query) : base(schemaNavigator, query) { this.fromTree = fromTree; }
public GetCommand(SchemaNavigator navigator, String from) : base(navigator, from) { requests.Add(base.from.root); }
public NestedCommand(SchemaNavigator navigator, string from) : base(navigator, from) { }
public SQLWhereParser(OriginTree fromTree, Filter filter, SchemaNavigator schemaNavigator, Query query) : base(schemaNavigator, query) { this.fromTree = fromTree; this.filter = filter; }
public SQLParser(SchemaNavigator navigator, Query query) { this.navigator = navigator; this.query = query; }
public SQLJoinParser(Origin sourceNode, Origin targetNode, OriginTree fromTree, Filter join, SchemaNavigator schemaNavigator, Query query) : base(fromTree, join, schemaNavigator, query) { this.sourceNode = sourceNode; this.targetNode = targetNode; }