// constructor public U2DataReader(UniSession uSession, string fileName) { _uSession = uSession; try { uFile = _uSession.CreateUniFile(fileName); UniCommand uCmd = _uSession.CreateUniCommand(); uCmd.Command = string.Format("SELECT {0} BY @ID SAMPLED 100", uFile.FileName); uCmd.Execute(); usl = _uSession.CreateUniSelectList(0); _keySample = usl.ReadListAsStringArray(); RecordsAffected = 0; } catch (UniSessionException e) // unisession file not exists { if (e.ErrorCode == 14002) { Console.WriteLine("U2 file not found"); } else { // dont know, so rethrow throw; } } }
// constructor public U2DictReader(UniSession uSession, string fileName) { _uSession = uSession; try { uFile = _uSession.CreateUniDictionary(fileName); usl = _uSession.CreateUniSelectList(0); usl.Select(uFile); string[] keys = usl.ReadListAsStringArray(); _uds = uFile.ReadRecords(keys); } catch (UniSessionException e) // unisession file not exists { if (e.ErrorCode == 14002) { Console.WriteLine("U2 file not found"); } else { // dont know, so rethrow throw; } } }
public static CssFileResult GetData(AccountList list, CssAccountFile file, CssCredentials cssCredentials) { var lHostName = cssCredentials.Hostname; var lAccount = cssCredentials.Account; var lUser = cssCredentials.User; var lPassword = cssCredentials.UserPassword; var lServiceType = cssCredentials.ServiceType; var response = new CssFileResult(); var fileResults = new CssFile { FileName = list.AccountListName }; UniSession us = null; try { //get the session object us = UniObjects.OpenSession(lHostName, lUser, lPassword, lAccount, lServiceType); // create select list UniSelectList selectList = us.CreateUniSelectList(2); selectList.GetList(list.AccountListName); // read records using array of records ids var ids = selectList.ReadListAsStringArray(); //open file UniFile cssFile = us.CreateUniFile(file.FileName); var lSet = cssFile.ReadRecords(ids); //var dict = us.CreateUniDictionary(file.FileName); //var field1 = dict.ReadField(1); //use foreach statement to construct data to be displayed foreach (UniRecord item in lSet) { var record = new CssRecord(item.RecordID, ""); var numFields = item.Record.Dcount(); for (int i = 0; i < numFields; i++) { var field = item.Record.Extract(i); var valuesCount = field.Dcount(); if (valuesCount > 1) { throw new Exception("This field has sub-values" + field); } record.Fields.Add(new CssField(i.ToString(), field.ToString())); } fileResults.Records.Add(record); } response.FileContents = fileResults; return(response); } catch (Exception ex) { response.CssResponses.Results.Add(new CommandResponse("Exception", ex.ToString())); } finally { if (us != null && us.IsActive) { UniObjects.CloseSession(us); } } response.CssResponses.Results.Add(new CommandResponse("Error", "There was an error procesing your request.")); return(response); }
public bool Read() { if (_keySample == null) { return(false); } if ((_blockIdx > _keySample.Length) || (Limit > 0 && RecordsAffected >= Limit)) { return(false); } if (0 == _rowIdx) { UniCommand uCmd = _uSession.CreateUniCommand(); _keyBlock = null; while (_keyBlock == null) { uCmd.Command = string.Format("SELECT {0} BY @ID", uFile.FileName); if (_blockIdx > 0) { uCmd.Command += string.Format(" WITH @ID >= \"{0}\"", _keySample[_blockIdx - 1].Replace("\"", "\"\"")); } if (_blockIdx < _keySample.Length) { if (_blockIdx > 0) { uCmd.Command += " AND "; } else { uCmd.Command += " WITH "; } uCmd.Command += string.Format("@ID < \"{0}\"", _keySample[_blockIdx].Replace("\"", "\"\"")); } uCmd.Execute(); usl = _uSession.CreateUniSelectList(0); _keyBlock = usl.ReadListAsStringArray(); if (_keyBlock == null) { _blockIdx++; } } // Console.Write(_keyBlock.ToString()); _uds = uFile.ReadRecords(_keyBlock); } if (_rowIdx < _keyBlock.Length) { _row.Clear(); _row.Add(_keyBlock[_rowIdx]); _row.Add(_uds.GetRecord(_rowIdx).Record.ToString()); _rowIdx++; if (_rowIdx == _keyBlock.Length) { _rowIdx = 0; _blockIdx++; } } RecordsAffected++; return(true); /* * try * { * * if (0 == i) * value = key; * else * { * var fld = udaRow.Extract(i).ToString(); * if ("" != fld) * { * var xf = new XElement("fld" / *, new XAttribute("loc", i) * /); * for (var v = 1; v <= udaRow.Dcount(i); v++) * { * / * * XElement xv = new XElement("val", new XAttribute("loc", v)); * string val = udaRow.Extract(i, v).ToString(); * if ("" != val) * { * for (int s = 1; s <= udaRow.Dcount(i, v); s++) * { * xv.Add(new XElement("sub", new XAttribute("loc", s), udaRow.Extract(i, v, s).ToString())); * } * } * xf.Add(xv); * / * * var val = udaRow.Extract(i, v).ToString(); * * * //replace control characters that are invalid in xml with empty string * var re = @"[^\x09\x0A\x0D\x20-\xD7FF\xE000-\xFFFD\x10000-x10FFFF]"; * val = Regex.Replace(val, re, ""); * * // replace text and subtext remarks with carriage return * re = @"[\xFB\xFC]"; * val = Regex.Replace(val, re, "\n"); * //const string TM_CHAR = "\xFB"; * //const string SM_CHAR = "\xFC"; * //val.Replace(SM_CHAR, "\n"); * //val.Replace(TM_CHAR, "\n"); * * xf.Add(new XElement("val", new XAttribute("loc", v), val)); * } * value = xf.ToString(); * } * } * } * catch (Exception e) * { * Console.WriteLine(e.ToString()); * } * if (null == value) * return DBNull.Value; * else * return value; * */ }