16 октября, вторник 05:31
Bankir.Ru

Объявление

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

Тут помню, тут - ничего не помню ....

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

  • Тут помню, тут - ничего не помню ....

    Кто-нить встречал таку каку: в sb_depdoc.dbt ищу по условию: IsCur==0 AND FNCash==2 AND CodCur==0 AND SpecVariable == "KassOPrub". Прог-ма на РСЛ ничего не находит, в смысле, GetEQ () возвращает False. Реально же такая запись присутствует, ее видно в Оболочка_РСЛ, и сам Оболочка_ ее легко находит (Данные, Просмотр, ..., Alt-F4, и т.д.). А вот если заменить "KassOPrub" на "KassOPVal", то находит и прог-ма. Что бы это могло быть, и как его избыть ? (или просто избить...)

  • #2
    Ключ!

    Комментарий


    • #3
      private var DepAcc= TBFile("sb_acdep.dbt", "r", 0); ключ именно тот, который нужен.

      Комментарий


      • #4
        С сожалению у меня доступа к РС нет. Поэтому смогу помочь если:
        1. Предоставите кусок кода на который грешите;
        2. Ключи для sb_acdep.dbt.

        Чудес в RSL не бывает, уж поверьте более 10-ти лет практики.

        Комментарий


        • #5
          sb_acdep.* - описание таблицы и ключей, полученнное через Оболочка_РСЛ.
          desklogs.* - прог-ма (macro GetDeskAcc()).

          Комментарий


          • #6
            DepAcc.Rec.ContMode= 0 всё же оставьте, а лучше вообще ClearRecord делать перед присовоением полей.

            Покажите ваш MsgBox("macro GetDeskAcc.....") для IsCur>0 и IsCur=0. Но только после GetEQ

            Комментарий


            • #7
              Harry Novi
              У ключа SpecVariable флаг "Alternate order" не выставлен следовательно при сортировке символы верхнего и нижнего регистра в этих полях будут учитываться.

              Точно "KassOPrub", а на "KassOPRub"?

              Комментарий


              • #8
                Покажите ваш MsgBox

                Комментарий


                • #9
                  Точно "KassOPrub", а не "KassOPRub", и в прог-ме, и в базе.

                  Да,символы верхнего и нижнего регистра в этих полях учитываются- когда я заменил "KassOPVal" на "KassOPval", прог-ма перестала находить эту запись.
                  Если посмотреть эту таблицу с ключом "-1" (под Оболочка_РСЛ), то запись с "KassOPVal" является физически последней в таблице, а запись с "KassOPrub" сидит где-то в середине таблицы. Больше никаких отличий между ними не просматривается.

                  Комментарий


                  • #10
                    Пробелов нет после "KassOPrub" ("KassOPrub ")?

                    Комментарий


                    • #11
                      Пробелов после "KassOPrub" нет точно, эта мысль была и у меня. Теперь вот что я сделал (все под Оболочка_РСЛ): 1)удалил запись с "KassOPrub"; 2)вставил запись с "KassOPrub" так, чтобы она была последней в таблице (под ключем "-1"). Итог- все по-прежнему: прог-ма не находит "KassOPrub", а при просмотре в Оболочка_РСЛ под ключем "-1" физически последней оказывается запись с "KassOPVal", а запись с "KassOPrub" - где-то в середине таблицы. Интересно, РСЛ вставляет новую запись не в хвост таблицы, а на место другой, помеченной как удаленная ? И еще: в "настольной СУБД" (типа Clipper, DBase III/IV, ...) я в такой ситуации создал бы заново соответствующий индексный файл. А в РСЛ можно как-нибудь "освежить" ключи таблицы ?

                      Комментарий


                      • #12
                        Harry Novi
                        Можно, но зачем "ломом дверь открывать, когда ключи в кормане". На файл взглянуть можно, криминала в нем нет?

                        Комментарий


                        • #13
                          "Можно, но зачем " - а как это делается ?

                          Комментарий

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

                          Свернуть

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

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