예제 #1
0
파일: SQLite.cs 프로젝트: jiahao42/weverca
        public static PhpArray FetchAll(PhpResource resultIdentifier, object result_type, object decode_binary)
        {
            PhpSQLiteDbResult res = PhpSQLiteDbResult.ValidResult(resultIdentifier);

            if (res == null)
            {
                return(null);
            }
            SQLite.QueryResultKeys resType = QueryResultKeys.Both;
            if (result_type != null)
            {
                int val = PHP.Core.Convert.ObjectToInteger(result_type);
                if (val != 0)
                {
                    resType = (SQLite.QueryResultKeys)val;
                }
            }
            bool intKey = (resType & SQLite.QueryResultKeys.Numbers) == SQLite.QueryResultKeys.Numbers;
            bool strKey = (resType & SQLite.QueryResultKeys.ColumnNames) == SQLite.QueryResultKeys.ColumnNames;

            PhpArray arr  = new PhpArray();
            PhpArray line = null;

            while ((line = res.FetchArray(intKey, strKey)) != null)
            {
                arr.AddToEnd(line);
            }

            if (arr.Count == 0)
            {
                return(null);
            }
            return(arr);
        }
예제 #2
0
        internal static PhpSQLiteDbResult ValidResult(PhpResource handle)
        {
            PhpSQLiteDbResult result = handle as PhpSQLiteDbResult;

            if (result != null && result.IsValid)
            {
                return(result);
            }

            PhpException.Throw(PhpError.Warning, LibResources.GetString("invalid_result_resource"));
            return(null);
        }
예제 #3
0
        public object query(ScriptContext context, object query, object resultType, PhpReference error)
        {
            SQLite.QueryResultKeys rt = SQLite.QueryResultKeys.Both;

            int vRt = PHP.Core.Convert.ObjectToInteger(resultType);

            if (Enum.IsDefined(typeof(SQLite.QueryResultKeys), vRt))
            {
                rt = (SQLite.QueryResultKeys)vRt;
            }

            PhpSQLiteDbResult result = (PhpSQLiteDbResult)SQLite.Query(this.m_con, query, rt, error);

            if (result != null)
            {
                return(new SQLiteResult(result));
            }
            else
            {
                return(null);
            }
        }
예제 #4
0
 internal SQLiteResult(PhpDbResult res)
     : base("sqlite result")
 {
     this.m_res = (PhpSQLiteDbResult)res;
 }
예제 #5
0
 internal SQLiteResult(PhpDbResult res)
     : base("sqlite result")
 {
     this.m_res = (PhpSQLiteDbResult)res;
 }