Beispiel #1
0
        public override RemoteResult SelectRead(SelectDescription description, out SelectSearchResult searchResult)
        {
            SelectSearchResult value = null;
            var ret = CommonMethodHandler(description.TableName,
                                          (dbModule) => dbModule.SelectRead(description, out value));

            searchResult = value;
            return(ret);
        }
Beispiel #2
0
        private RemoteResult SelectRead(SelectDescriptionForGeneric <TCommand> description, out SelectSearchResult searchResult)
        {
            var result = new List <SearchData>();

            description.IdDescription.PageSize = description.CountElements + 2;
            var command = _metaDataCommandCreator.CreateSelectCommand(description.Script, description.IdDescription,
                                                                      description.UserParametrs);

            if (command == null)
            {
                searchResult = new SelectSearchResult(new List <SearchData>(), true);
                return(new InnerServerError(Errors.QueryError));
            }

            var reader = _implModule.CreateReader(command);

            reader.Start();

            if (reader.IsFail)
            {
                searchResult = new SelectSearchResult(result, true);
                return(new InnerFailResult("script error"));
            }

            while (reader.IsCanRead && result.Count < description.CountElements)
            {
                reader.ReadNext();

                var fields = _metaDataCommandCreator.SelectProcess(reader);

                var key = fields.Find(x => x.Item2.ToLower() == description.IdDescription.AsFieldName.ToLower());
                result.Add(new SearchData(fields, key.Item1));
            }
            bool isAllDataRead = !reader.IsCanRead;

            reader.Dispose();
            searchResult = new SelectSearchResult(result, isAllDataRead);

            return(new SuccessResult());
        }
Beispiel #3
0
 public abstract RemoteResult SelectRead(SelectDescription description, out SelectSearchResult searchResult);