public CallCursor(CursorDef def) : this(def.Name, def.Stmt, def.Nmask, def.ParmBinds)
 {
     _updatable = 1;
     isForFirst = true;
     hasNested  = false;
     _cursorDef = def;
 }
        public Cursor(string name, string stmt, GxErrorMask nmask, ICollection parmBinds, short blockSize)
        {
            _name           = name;
            _stmt           = stmt;
            _blockSize      = blockSize;
            _state          = 1;
            _stmtParameters = Array.Empty <string>();

            _parmBinds = (object[])parmBinds;
            _errMask   = nmask;
            _closed    = true;
            _cursorDef = null;
        }
 public BatchUpdateCursor(CursorDef def)
     : base(def.Name, def.Stmt, def.Nmask, def.ParmBinds, 0)
 {
     _updatable = 1;
     _cursorDef = def;
 }
 public ForEachCursor(CursorDef def) : base(def.Name, def.Stmt, def.Nmask, def.ParmBinds, def.BlockSize, def.TimeToLive, def.HasNested, def.IsForFirst, def.getDynamicOrder())
 {
     dynamicStmt = def.Stmt.Length == 7 && def.Stmt.ToLower().Equals("scmdbuf");
     parent      = def.Parent;
     _cursorDef  = def;
 }