Example #1
0
        // 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;
                }
            }
        }
Example #2
0
        // 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);
        }
Example #4
0
        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;
             *     */
        }