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