Пример #1
0
        public static DataTable execute(IEnvironment env, string sql, object[] parameters)
        {
            ImplSqlBuilder b = new ImplSqlBuilder(env, sql, string.Empty);

            if (parameters != null)
            {
                foreach (object p in parameters)
                {
                    b.addFreeParameterValue(p);
                }
            }
            ImplPagedSource ps = new ImplPagedSource(env, b);

            return(ps.getAll());
        }
Пример #2
0
        public static IReport createReport(IEnvironment pEnv, ISettings pSettings, string pName, IRowSource pRowSource)
        {
            string sqlNode = pSettings.getStringAttr(pName, attrSql);
            string repNode = pSettings.getStringAttr(pName, attrRep);

            if (sqlNode != string.Empty && repNode != string.Empty)
            {
                string sqlText = pSettings.getString(sqlNode);
                string sqlVars = pSettings.getStringAttr(sqlNode, attrVars);
                if (sqlVars == string.Empty)
                {
                    sqlVars = ToolString.joinList(new string[] { "@lref", TableDUMMY.LOGICALREF });
                }
                string      sqlName = pSettings.getStringAttr(sqlNode, attrName);
                ISqlBuilder builder = new ImplSqlBuilder(pEnv, sqlText, sqlName);
                IDictionary <string, string> dic    = ToolString.explodeForParameters(sqlVars);
                IEnumerator <string>         enumer = dic.Keys.GetEnumerator();
                enumer.Reset();
                while (enumer.MoveNext())
                {
                    builder.addPereparer(
                        new SqlBuilderPreparerObjectSourceFreePar(
                            enumer.Current,
                            new ImplObjectSourceRowCell(pRowSource, dic[enumer.Current])
                            )
                        );
                }
                IPagedSource ps = new ImplPagedSource(pEnv, builder);



                string  repObj = pSettings.getString(repNode);
                IReport xmlRep = new ImplXmlReport(repObj, pEnv);

                xmlRep.setDataSource(ps);


                return(xmlRep);
            }
            return(null);
        }
Пример #3
0
        public DataSet get()
        {
            //
            _result.Clear();
            for (int i = 0; i < _sqlQueryes.Length; ++i)
            {
                IPagedSource source =
                    new ImplPagedSource(
                        _environment,
                        new ImplSqlBuilder(_environment, _sqlQueryes[i], (_aliases.Length > i ? _aliases[i] : string.Empty)));

                foreach (IFilter filter in _filters)
                {
                    filter.applyToBuilder(source.getBuilder());
                }

                _result.Tables.Add(source.getAll());
            }
            foreach (DataTable tab in _result.Tables)
            {
                ToolTable.fillNull(tab);
            }
            return(_result.Copy());
        }
Пример #4
0
        void fillColumnsInfo()
        {
            string firmId   = environment.prepareSqlText("$FIRM$");
            string periodId = environment.prepareSqlText("$PERIOD$");
            //

            DataTable tabs_ = new ImplPagedSource(environment, new ImplSqlBuilder(environment, "SELECT name FROM sqlite_master  where type= 'table'", string.Empty)).getAll();

            foreach (DataRow row1 in tabs_.Rows)
            {
                //  string type1_ = ToolCell.isNull(row1["type"], "").ToString().ToLowerInvariant();
                string name1_ = ToolCell.isNull(row1["name"], "").ToString();
                // if (type1_ == "table")
                {
                    string tableNameShort = name1_;
                    string tableNameFull  = name1_;


                    if (tableNameFull.StartsWith("L_CAPI"))
                    {
                        tableNameShort = tableNameFull.Remove(0, 6);
                    }
                    else if (tableNameFull.StartsWith("L_"))
                    {
                        tableNameShort = tableNameFull.Remove(0, 2);
                    }
                    else
                    if (tableNameFull.StartsWith("LG_" + firmId + "_" + periodId + "_"))
                    {
                        tableNameShort = tableNameFull.Remove(0, 10);
                    }
                    else
                    if (tableNameFull.StartsWith("LG_" + firmId + "_"))
                    {
                        tableNameShort = tableNameFull.Remove(0, 7);
                    }



                    List <string> listCols = new List <string>();
                    List <int>    listSize = new List <int>();
                    List <Type>   listType = new List <Type>();

                    DataTable cols_ = new ImplPagedSource(environment, new ImplSqlBuilder(environment, "pragma table_info(" + name1_ + ")", string.Empty)).getAll();
                    foreach (DataRow row2 in cols_.Rows)
                    {
                        string type2_ = ToolCell.isNull(row2["type"], "").ToString().ToLowerInvariant();
                        string name2_ = ToolCell.isNull(row2["name"], "").ToString();
                        //store len as nvarchar(20)

                        StringBuilder sbName = new StringBuilder();
                        StringBuilder sbLen  = new StringBuilder();

                        foreach (char c in type2_.ToCharArray())
                        {
                            if (char.IsLetter(c))
                            {
                                sbName.Append(c);
                            }
                            else
                            if (char.IsDigit(c) || c == '.')
                            {
                                sbLen.Append(c);
                            }
                        }

                        if (sbLen.Length == 0)
                        {
                            sbLen.Append('0');
                        }


                        Type   type3_ = ToolTypeSet.helper.tObject;
                        double len3_  = XmlFormating.helper.parseDouble(sbLen.ToString());


                        switch (sbName.ToString())
                        {
                        case "nvarchar":
                        case "varchar":
                            type3_ = ToolTypeSet.helper.tString;
                            break;

                        case "float":
                            type3_ = ToolTypeSet.helper.tDouble;
                            break;

                        case "datetime":
                            type3_ = ToolTypeSet.helper.tDateTime;
                            break;

                        case "smallint":
                            type3_ = ToolTypeSet.helper.tShort;
                            break;

                        case "int":
                            type3_ = ToolTypeSet.helper.tInt;
                            break;
                        }

                        {
                            string name = name2_;
                            int    len  = (int)len3_;
                            Type   type = type3_;

                            listCols.Add(name);
                            listSize.Add(len);
                            listType.Add(type);
                        }
                    }

                    dic[tableNameShort] = new ImplTableDescriptor(tableNameShort, tableNameFull, listCols.ToArray(), listSize.ToArray(), listType.ToArray());
                }
            }
        }