/// <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); }
/// <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; }