View previous topic :: View next topic |
Author |
Message |
k_serg
Joined: 30 May 2002 Posts: 5
|
Posted: 30 May 2002 12:32 Post subject: |
|
|
Есть необходимость написать внешнюю прогу для БЭСТ. Но мне сказали, что могут рухнуть индексы в ADS. Кто знает решение, подскажите пожалуйст |
|
Back to top |
|
|
general
Joined: 14 Jan 2002 Posts: 276 Location: Клешнин Антон Александрович
|
Posted: 30 May 2002 12:46 Post subject: |
|
|
Есть Clipper - к нему есть библиотеки для работы с индексами. Либо если лень изучать Clipper (хотя почти никакой разницы), можешь на VisualFox' |
|
Back to top |
|
|
k_serg
Joined: 30 May 2002 Posts: 5
|
Posted: 31 May 2002 03:44 Post subject: |
|
|
А VisualFox не рушит индексы ADS?
|
|
Back to top |
|
|
general
Joined: 14 Jan 2002 Posts: 276 Location: Клешнин Антон Александрович
|
Posted: 31 May 2002 09:02 Post subject: |
|
|
Для него тоже есть библиотеки |
|
Back to top |
|
|
ksenya
Joined: 01 Feb 2002 Posts: 112
|
Posted: 21 Jun 2002 17:48 Post subject: |
|
|
Quote: |
On 2002-05-31 09:02, general wrote:
Для него тоже есть библиотеки
|
Подскажите, какие?
|
|
Back to top |
|
|
general
Joined: 14 Jan 2002 Posts: 276 Location: Клешнин Антон Александрович
|
|
Back to top |
|
|
k_serg
Joined: 30 May 2002 Posts: 5
|
Posted: 04 Apr 2003 11:55 Post subject: |
|
|
Господа! Как работает режим "Формирование отчетов", если он написан на FP2.6 for DOS? И при этом не рушатся индексы.
Может здесь какая-то хитрость? |
|
Back to top |
|
|
Алексей З.
Joined: 08 Jan 2003 Posts: 344 Location: Зызин Алексей Occupation: ЗАО "Ренова", программист Interests: Москва
|
Posted: 04 Apr 2003 12:03 Post subject: |
|
|
k_serg wrote: | Господа! Как работает режим "Формирование отчетов", если он написан на FP2.6 for DOS? И при этом не рушатся индексы.
Может здесь какая-то хитрость? |
А с чего бы им рушится?! |
|
Back to top |
|
|
masson
Joined: 02 Apr 2003 Posts: 12
|
Posted: 04 Apr 2003 12:27 Post subject: |
|
|
k_serg wrote: | Господа! Как работает режим "Формирование отчетов", если он написан на FP2.6 for DOS? И при этом не рушатся индексы.
Может здесь какая-то хитрость? |
Fox без проблем умеет читать БЕСТовые индексы, проблемы возникают при корректировке индексируемых БЭСТом полей или добавлении записей в dbf-файлы. Я чуть ниже зарядил на эту тему топик, но что-то пока никто не отвечает |
|
Back to top |
|
|
yermak
Joined: 01 Aug 2002 Posts: 45 Location: Ермак Е.Ю. Occupation: ООО "Автоматизированные системы управления" Interests: Владивосток
|
Posted: 06 Apr 2003 03:54 Post subject: |
|
|
Фокс (любой) нормально работает с индексами БЭСТ4 клиент-сервер.
Только открывать таблицы нужно так
USE mdocm shared noupdate in 0
Главное тут shared и NoUpdate. Сам написал несколько программ.
Единственный косяк - это при работе с ADS под NT не получается насильно установить кодовую страницу, но там и через ODBC можно юсать данные. _________________ С уважением, Ермак Евгений
г.Владивосток |
|
Back to top |
|
|
Алексей З.
Joined: 08 Jan 2003 Posts: 344 Location: Зызин Алексей Occupation: ЗАО "Ренова", программист Interests: Москва
|
Posted: 07 Apr 2003 11:43 Post subject: |
|
|
Не совсем согласен с предыдущим оратором.
Я работаю с БЭСТом более 6 лет. Всегда "обслуживал" его Фоксом. Сначала делал обработки в 2.6, потом в 5-ке, сейчас в 7-ке. НИКОГДА не было сложностей с работой над БЭСТовскими таблицами. При открытии таблицы, по ситуации, можно открывать и SHARED и EXCLUSIVE. И НИКОГДА не открываю Для таких случаев я делаю ПРЕДСТАВЛЕНИЯ, что гораздо удобнее и безопаснее. Но чтобы реально работать с таблицами - без EXCLUSIVE не обойтись!
Один только ньюанс: когда Вы ВПЕРВЫЕ открываете БЭСТовскую таблицу через DATA SESSION или из COMMAND обязательно указываете DOS-кодировку. При повторном открытии - таблица автоматически откроется в DOS-кодировке. (Во всяком случае 5-ый и 7-ой - запоминают кодировки прекрасно, а 2.6 - сам досовский)
По поводу индексов - могу сказать следующее. Дело в том, что как правило изменяя данные в одной таблицы НЕОБХОДИМО соответственно изменить данные в одной или нескольких других СВЯЗАННЫХ с ней таблицах. Например, таблицы с документами, по которым делаются проводки, тесно связаны с книгой операций через номер операции. Причем документу могут соответствовать как одна проводка, так и несколько. Т.е. один документ - множество (>=1) проводок. Это самый простой пример. Другие таблицы связываются между собой либо через несколько полей либо опосредованно через 3-ю таблицу. Короче, это классика реляционных баз.
Поддержка целостности данных в БЭСТе идет на уровне ввода, редактирования и удаления данных из самого БЭСТа. Если перед тем как вносить изменения в какую-либо таблицу Вы не учитываете её связи с другими таблицами, то потом Вы хоть обреиндексируйтесь - будет ерунда, хотя индексы по каждой отдельной таблице отстроенны правильно! Будет казаться, что индексы слетели.
А для того, чтобы корректно работать ТЩАТЕЛЬНО изучите APDX-NN.txt и BASES_NN.dbf в каждом нужном Вам АРМе (в каждом АРМе значение NN - принимает своё значение). |
|
Back to top |
|
|
masson
Joined: 02 Apr 2003 Posts: 12
|
Posted: 07 Apr 2003 15:11 Post subject: |
|
|
Алексей З. wrote: | Я работаю с БЭСТом более 6 лет. Всегда "обслуживал" его Фоксом. |
Попробуй завести фоксом запись в Sclad\MPrim.dbf (через APPEND BLANK - GATHER) либо просто отредактируй поле Name руками. У MPrim нет никаких связей, но индексы полетят, это увидишь в БЭСТе (если вывод всего справочника больше чем размера экрана) |
|
Back to top |
|
|
Алексей З.
Joined: 08 Jan 2003 Posts: 344 Location: Зызин Алексей Occupation: ЗАО "Ренова", программист Interests: Москва
|
Posted: 07 Apr 2003 15:25 Post subject: |
|
|
masson wrote: | ... У MPrim нет никаких связей... |
Это не так. Смотри запись №108 в файле "... \sclad\bases_03.dbf". Сразу не скажу с какими файлами он "пересекается" и по какому индексу (простому или составному). Но если о нем имеется там информация, то думаю - неспроста. |
|
Back to top |
|
|
yermak
Joined: 01 Aug 2002 Posts: 45 Location: Ермак Е.Ю. Occupation: ООО "Автоматизированные системы управления" Interests: Владивосток
|
Posted: 07 Apr 2003 15:27 Post subject: |
|
|
То: Алексей З.
Нельзя таблицы открывать фоксом в монопольном режиме - их тогда сам ADS не сможет открыть пока вы эту таблицу юсаете. Если Нужно просто поправить базы то открывать можно как угодно, тока потом не забудь переиндекить, а если же нужно открыть таблицу во время ее юсанья БЭСТом, то только с SHARED NOUPDATE. Иначе не откроется.
На счет установки кодовой страницы я написал в свое время dll кот. ставит кодовую страницу на уже открытые БЭСТом таблицы, можно ее взять на http://nsvisual.com/fox2/sol/index.php?act=view&id=84 _________________ С уважением, Ермак Евгений
г.Владивосток |
|
Back to top |
|
|
Алексей З.
Joined: 08 Jan 2003 Posts: 344 Location: Зызин Алексей Occupation: ЗАО "Ренова", программист Interests: Москва
|
Posted: 07 Apr 2003 15:49 Post subject: |
|
|
Как я говорил выше: если мне нужно взять данные из БЭСТа для просмотра или какой-то дальнейшей обработки (например, сделать хитрозавёрнутый отчёт для экономистов) я запускаю заранее подготовленные ПРЕДСТАВЛЕНИЯ, а не таблицы. Представления не блокируют ни таблицы, ни записи, ни заголовки таблиц. И их я могу всегда динамически обновлять.
Но если производятся какие-либо исправления в самих таблицах - в этом случае я их открываю ИСКЛЮЧИТЕЛЬНО ЭКСКЛЮЗИВНО!! Естественно, я предварительно выгоняю народ из "ремонтируемой" базы. Иначе - нельзя. Если этого не делать и позволить пользователям работать одновременно с моим ремонтом, то СЛЁТ ИНДЕКСОВ - ГАРАНТИРОВАН. Не зависимо от того, насколько корректно ты работаешь с самими таблицами. |
|
Back to top |
|
|
|