View previous topic :: View next topic |
Author |
Message |
Egor_M
Joined: 20 Jun 2002 Posts: 10
|
Posted: 26 Jun 2002 13:07 Post subject: |
|
|
Здравствуйте.
Возникло несколько вопросов:
Как правильно заполнить поле CRC которое встречается практически во всех таблицах?
Как БЭСТ узнает какой номер присвоить новому заказу?
Например:
Много пользователей делают заказы, он каждому новому заказу выдает номер последнего КОНСТРУИРУЕМОГО +1, т.е. если последний записанный заказ 100, 5 пользователей делают заказы и заходит 6-й, то ему он выдаст номер 106.
Где хранит информацию о новом заказе в процессе его создания (пока его не записали)?
Дело в том, что мне на Дельфе нужно написать добавление заказов прямо из приложения. |
|
Back to top |
|
|
MasMas
Joined: 11 May 2002 Posts: 19 Location: Малюков Александр
|
Posted: 26 Jun 2002 17:38 Post subject: |
|
|
Quote: |
Как БЭСТ узнает какой номер присвоить новому заказу?
Где хранит информацию о новом заказе в процессе его создания (пока его не записали)?
|
Посмотри /каталогбазы/SCKAD/00000000.000 или 00000000.мем |
|
Back to top |
|
|
Egor_M
Joined: 20 Jun 2002 Posts: 10
|
Posted: 27 Jun 2002 08:18 Post subject: |
|
|
Какой у него формат?
Я понял что в конце идет последний номер, а что идет до нег |
|
Back to top |
|
|
NDG
Joined: 10 Jun 2002 Posts: 13
|
Posted: 27 Jun 2002 08:37 Post subject: |
|
|
CRC код не нужен заполняеш на шару подходяшей последовательностью и в |
|
Back to top |
|
|
OlgaLeonova
Joined: 14 Mar 2002 Posts: 112 Location: Леонова
|
Posted: 28 Jun 2002 12:38 Post subject: |
|
|
__________________________
Как БЭСТ узнает какой номер присвоить новому заказу?
________________________________
А вот прикол с новым номером:
В справочнике партнеров уже есть код "9999 " и "10000 ". При сортировке по кодам последний -"9999 ",т.е. сортировка символьная
F4- дает "10000 " , т.е. алгоритм поиска следующего номера - последний символьный+еденица к числу.
Ну если уж символьные номера, то следующий "99991 " хотя бы.
Теперь страдаем. Последний номер ручками ищем ;(
|
|
Back to top |
|
|
ksenya
Joined: 01 Feb 2002 Posts: 112
|
Posted: 04 Oct 2004 15:05 Post subject: |
|
|
NDG wrote: | CRC код не нужен заполняеш на шару подходяшей последовательностью и всё |
Вопрос достаточно часто поднимался на форуме, перечитала все обсуждения на эту тему, но... Внятного ответа кроме этого не нашла.
Подскажие пожалуйста (очень нужно сейчас, в связи с прописыванием импорта-экспорта с внешними прогами) - Заполнение или незаполнение CRC как-то на что-нибудь влияет??? Если да, то как его заполнить? |
|
Back to top |
|
|
grey
Joined: 12 Jan 2004 Posts: 297 Location: Родионов С.Г. Occupation: ООО Бухгалтер, программист Interests: Набережные Челны
|
Posted: 05 Oct 2004 10:37 Post subject: |
|
|
На работу не влияет. Просто будет ругать "физический сбой" при контроле целостности. |
|
Back to top |
|
|
ksenya
Joined: 01 Feb 2002 Posts: 112
|
Posted: 05 Oct 2004 10:50 Post subject: |
|
|
grey wrote: | На работу не влияет. Просто будет ругать "физический сбой" при контроле целостности. |
Спасибо, если так. Значит, надо просто заполнять это поле какой-то левой последовательностью? Или можно вообще пустым оставлять? |
|
Back to top |
|
|
Krosh
Joined: 13 Oct 2003 Posts: 97 Location: КИА Occupation: СТ Interests: Москва
|
Posted: 05 Oct 2004 10:52 Post subject: |
|
|
Уж сколько раз твердили ... ИС - надо счетчики номеров через БД раздавать, в не через идиотскую систему сохранения переменных.
Моё решение такое - написал прогу на Clipper, которая мониторит:
1. номера из Книги заказов (REAL\RBOOK.DBF)
2. номера из архивной Книги заказов (SCLAD\ARC\ARBOOK.DBF)
3. счётчик номеров заказов - файл SCLAD\00000000.000
( Нормально? счётчик номеров ЗАКАЗОВ в директории склада!!!!
Боремся со здравым смыслом??? )
По обеим БД строится БД "дырок", то есть диапазоны свободных номеров.
Далее прога берёт текущий номер из счётчика и пытается (довольно успешно, надо сказать) мониторить:
1. Запись заказа в Книгу заказов
2. Изменение счётчика
Т.о. отслеживается "раздача" номеров из "дырок". Если дырка становиться маленькой, то прога принудительно переставляет счётчик на следующую подходящую дырку.
Подходящей считается дырка с не менее чем 3 номера.
Обеспечивается практически 95% утилизация номеров заказов. |
|
Back to top |
|
|
Bestovichek
Joined: 22 Mar 2002 Posts: 257
|
Posted: 05 Oct 2004 14:45 Post subject: |
|
|
из БД номер заказа это хорошо, а вот если в один момент времени выписывают 5 счетов? совпадение номера неизбежно |
|
Back to top |
|
|
Krosh
Joined: 13 Oct 2003 Posts: 97 Location: КИА Occupation: СТ Interests: Москва
|
Posted: 06 Oct 2004 09:33 Post subject: |
|
|
Заказов (не счетов, будем точными, т.к. по заказу можно много счетов сделать и напечатать) одновременно может делаться гораздо больше 5, но:
1. Всё же события в сети никогда не будут ОДНОВРЕМЕННЫМИ, хотя бы потому, что протокол работы это всёже не постоянный двунаправленный поток, а "порционный". Т.е. всегда кто-то будет раньше, кто-то позже.
2. В БЭСТ при создании заказа сразу берётся номер из счётчика и счётчик делает инкремент. Поэтому (теоретически) пято хакахов - пять номеров. Но это было бы именно так, если бы не одно НО. ИС сделали систему нумерации на механизме считывания из файла в память значения переменной счётчика. Между считыванием и записью на диск значения+1 есть временной лаг, определяемый как сетевыми операциями, так и загрузкой конкретного компа и т.д. Итог - ВОЗМОЖНО ПОВТОРНОЕ считывание одного и того же номера.
Итог ясен - конфликт при записи заказа ("такой номер есть и пользователь вводит номер ручками. Почему же опять не взять номер из счётчика, ИС, а?)
Далее ИМХО, т.к. особо не замудрялся и не анализировал досконально.
Когда пользователь отказывается от записи заказа, БЭСТ помещает не нужный номер опять в файл счётчика. Типа recycling.
ИС! Когда же наконец на замечания будут аргументированные ответы?
ПОЧЕМУ НЕЛЬЗЯ СДЕЛАТЬ НУМЕРАЦИЮ ЧЕРЕЗ БД? |
|
Back to top |
|
|
|