Exemplo n.º 1
0
        /// <summary>
        /// Finds column by name in results.
        /// Returns 0-based index, or -1 if not found.
        /// </summary>
        /// <param name="name">Column name in results, as returned by sqlite3_column_name. Case-sensitive.</param>
        public int ColumnIndex(string name)
        {
            int n = ColumnCount;

            if (n > 0 && !name.NE())
            {
                if (AStringUtil.IsAscii(name))
                {
                    for (int i = 0; i < n; i++)
                    {
                        byte *b = SLApi.sqlite3_column_name(_st, i);
                        if (BytePtr_.AsciiEq(b, name))
                        {
                            return(i);
                        }
                    }
                }
                else
                {
                    var bname = AConvert.ToUtf8(name);
                    for (int i = 0; i < n; i++)
                    {
                        byte *b = SLApi.sqlite3_column_name(_st, i);
                        if (BytePtr_.Eq(b, bname))
                        {
                            return(i);
                        }
                    }
                }
            }
            return(-1);
        }
Exemplo n.º 2
0
            /// <summary>
            /// See <see cref="AWnd.Child"/>.
            /// </summary>
            /// <exception cref="ArgumentException">See <see cref="Child"/>.</exception>
            public ChildFinder(
                [ParamString(PSFormat.AWildex)] string name = null,
                [ParamString(PSFormat.AWildex)] string cn   = null,
                WCFlags flags = 0, Func <AWnd, bool> also = null, int skip = 0)
            {
                if (cn != null)
                {
                    if (cn.Length == 0)
                    {
                        throw new ArgumentException("Class name cannot be \"\". Use null.");
                    }
                    _className = cn;
                }
                if (name != null)
                {
                    switch (AStringUtil.ParseParam3Stars(ref name, "id", "text", "accName", "wfName" /*, "label"*/))
                    {
                    case -1: throw new ArgumentException("Invalid name prefix. Can be: \"***id \", \"***text \", \"***accName \", \"***wfName \".");                     //, \"***label \"

                    case 1: _nameIs = _NameIs.id; _id = name.ToInt(); break;

                    case 2: _nameIs = _NameIs.text; break;

                    case 3: _nameIs = _NameIs.accName; break;

                    case 4: _nameIs = _NameIs.wfName; break;
                        //case 5: _nameIs = _NameIs.label; break;
                    }
                    if (_nameIs != _NameIs.id)
                    {
                        _name = name;
                    }
                }
                _flags     = flags;
                _also      = also;
                _skipCount = skip;
            }