/// <summary> /// calculate insert flag /// </summary> /// <param name="cursorDefinition"></param> protected virtual void CalculateInsertFlag(CursorDefinition cursorDefinition) { if (DataSourceViewDefinition.CanInsert) { cursorDefinition.SetFlag(CursorProperties.Insert); } else { cursorDefinition.ClearFlag(CursorProperties.Insert); } }
/// <summary> /// Build cursor definition. /// </summary> /// <param name="link"></param> /// <returns></returns> internal CursorDefinition BuildCursorDefinition(DataSourceDefinition dataSourceDefinition, DBKey dbKey, Order order, bool keyCheckNeeded, List <DBField> dbFields, Access access) { CursorDefinition cursorDefinition = new CursorDefinition(); cursorDefinition.DataSourceDefinition = dataSourceDefinition; cursorDefinition.Key = dbKey; cursorDefinition.FieldsDefinition = dbFields; cursorDefinition.IsFieldUpdated = new List <bool>(); cursorDefinition.DifferentialUpdate = new List <bool>(); for (int i = 0; i < cursorDefinition.FieldsDefinition.Count; i++) { //rt_prpr_fldlist_in_vew - different from C++ but it seems more logical cursorDefinition.IsFieldUpdated.Add(false); cursorDefinition.DifferentialUpdate.Add(false); } cursorDefinition.Direction = order; cursorDefinition.CursorMode = CursorMode.Online; //check for non interactive // : CursorMode.Batch; if (keyCheckNeeded) { cursorDefinition.SetFlag(CursorProperties.KeyCheck); } //TODO:batch tsk_crsr_prpr cursorDefinition.SetFlag(CursorProperties.StartPos); //TODO:locate tsk_crsr_prpr //crsr->dir = CTX->ctl_tsk_.tskr->range_dir; //TODO: //if CTX->ctl_tsk_.tsk_rt->TransMode != TRANS_MODE_NONE if (access == Access.Write) { CalculateInsertFlag(cursorDefinition); ClaculateDeleteFlag(cursorDefinition); cursorDefinition.SetFlag(CursorProperties.Update); } return(cursorDefinition); }
protected virtual void CalculateLinkFlag(CursorDefinition cursorDefinition) { cursorDefinition.SetFlag(CursorProperties.CursorLink); }
/// <summary> /// calculate value of the delete flag /// </summary> /// <param name="cursorDefinition"></param> protected override void ClaculateDeleteFlag(CursorDefinition cursorDefinition) { cursorDefinition.SetFlag(CursorProperties.Delete); }
/// <summary> /// claculate value of the inset flag /// </summary> /// <param name="cursorDefinition"></param> protected override void CalculateInsertFlag(CursorDefinition cursorDefinition) { cursorDefinition.SetFlag(CursorProperties.Insert); }