15 декабря, пятница 15:12
Bankir.Ru

Объявление

Свернуть
Пока нет объявлений.

Поиск записей в Btrive на макросах

Свернуть
X
  • Фильтр
  • Время
  • Показать
Очистить всё
новые сообщения

  • Поиск записей в Btrive на макросах

    Свела нелегкая меня с RS-банком...
    Люди помогите, как искать записи в таблицах...
    GetGE, GetEQ - используют индексы, а если нет у меня нужного индекса, что делать???

  • #2
    Vaio Путей несколько:
    1)Ищеш по записям до соответствия критериям
    2)выбираеш какой-нибудь недостаточный ключ и начинаеш просмотр с первой записи т.е. например в документах ереш ключ по счетам отправителя и идя по строкам выбираеш текст в основании платежа
    3) формируеш в отдельной базе новые ключи, копируш туда данные и там работаеш там с новыми ключами
    Последний раз редактировалось A.Anry; 03.03.2004, 15:48.
    В результате внедрения программного обеспечения ни одного юзверя не пострадало !

    Комментарий


    • #3
      копируш туда данные - не всегда оптимально, особенно если записи исходного файла длинные...
      лучше создать "внешний ключ" со ссылками на физ.номера записей, или уникальный идентификатор(ключ), если таковой, конечно, есть в исходном файле...

      Vaio почитай повнимательнее доку по RSL - кажется, там что-то про внешние ключи было... или не было? уже и не помню
      Последний раз редактировалось dd; 03.03.2004, 16:20.

      Комментарий


      • #4
        Vaio Если в состав того ключа, который нужен, но его нет, входит какой-либо из существующих ключей, то его (существующий ключ) можно использовать для ускорения процесса. Файл открывается с этим (существующим) ключом, затем вызывается GetEQ (или любой другой Get), а дальше - простым перебором записей.
        В каждой программе есть по крайней мере одна ошибка

        Комментарий


        • #5
          dd Было
          В каждой программе есть по крайней мере одна ошибка

          Комментарий


          • #6
            Всем спасибо, так и делаю...Я думал может есть какой нибудь другой способ...Мне после Oracle програмить под RS просто убийственно тяжко

            А как делать фильтрацию данных??? Выбрать только нужные данные, отбросив все остальные (типа Select)?

            Комментарий


            • #7
              Vaio
              Мне после Oracle програмить под RS просто убийственно тяжко
              Да, не тот программер пошел, не тот Зажралась молодеж

              А как делать фильтрацию данных???
              Пишете макрос проверяющий соответсвие условиям фильтра и вперед

              Примерно так:
              Код:
              file tb(document) key 0;
              
              macro IsSameRecord(tTable)
               var retValue=true;
              
               if(tTable.Oper!=1234)
                retValue=false;
               end;
              
               return(retValue);
              end;
              
              macro main
               var iCount=0;
              
               rewind(tb);
              
               while(next(tb))
                if(IsSameRecord(tb))
                 iCount=iCount+1;
                end;  
               end;
              
              [#](iCount:l);
              end;
              
              main();

              Комментарий


              • #8
                vsv Зажралась молодеж
                Vaio А как делать фильтрацию данных???
                Это уже зависит от конкретной задачи. Тут много чего напридумывать можно.
                В каждой программе есть по крайней мере одна ошибка

                Комментарий

                Пользователи, просматривающие эту тему

                Свернуть

                Присутствует 1. Участников: 0, гостей: 1.

                Обработка...
                X