protected override IDictionary<String, JSFieldType> open(IDbConnection conn, CXLReportDSConfig dsCfg, Int32 timeout) { IDictionary<String, JSFieldType> rslt = null; this.FCmd = new SQLCursor(conn); String vSQL = dsCfg.sql; this.FCmd.Init(vSQL, dsCfg.owner.inPrms); try { if (dsCfg.owner.debug) Utl.SaveStringToFile(dsCfg.owner.logPath + dsCfg.owner.extAttrs.shortCode + ".prdDS." + dsCfg.rangeName + ".sql", vSQL, null); this.FCmd.Open(timeout); //if (this.FDataReader.Next()) { rslt = new Dictionary<String, JSFieldType>(); for (int i = 0; i < this.FCmd.FieldsCount; i++) { rslt.Add(this.FCmd.Fields[i].FieldName, this.FCmd.Fields[i].DataType); } //} return rslt; } catch (ThreadAbortException) { throw; } catch (Exception ex) { throw EBioException.CreateIfNotEBio(ex); } }
/// <summary> /// Коструктор /// </summary> /// <param name="owner"></param> /// <param name="id"></param> /// <param name="name"></param> /// <param name="type"></param> /// <param name="header"></param> /// <param name="pkIndex"></param> /// <param name="fieldEncoding">Кодировка для CLOB полей</param> public Field(SQLCursor owner, Int32 id, String name, Type type, String header, String pkIndex, FieldEncoding fieldEncoding = FieldEncoding.UTF8) { this.FieldID = id; this._owner = owner; this.FieldName = name.ToUpper(); this.DataType = ftypeHelper.ConvertTypeToFType(type); this.Encoding = fieldEncoding; this.FieldCaption = header; this.FieldPkIndex = pkIndex; }
/// <summary> /// Создает и открывает курсор /// </summary> /// <param name="conn"></param> /// <param name="sql"></param> /// <param name="prms"></param> /// <param name="timeout"></param> /// <returns></returns> /// <exception cref="EBioException"></exception> public static SQLCursor CreateAndOpenCursor(IDbConnection conn, String sql, Params prms, Int32 timeout) { SQLCursor v_rslt; try { v_rslt = new SQLCursor(conn); v_rslt.Init(sql, prms); v_rslt.Open(timeout); } catch (ThreadAbortException) { throw; } catch (Exception ex) { throw new EBioException(ex.Message, ex); } return v_rslt; }