Главная
Новый форум
 FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

БД БЭСТ, ряд вопросов.

 
Post new topic   Reply to topic   printer-friendly view     Forum Index -> БЭСТ-4
View previous topic :: View next topic  
Author Message
Egor_M



Joined: 20 Jun 2002
Posts: 10



PostPosted: 26 Jun 2002 13:07    Post subject: Reply with quote

Здравствуйте.
Возникло несколько вопросов:

Как правильно заполнить поле CRC которое встречается практически во всех таблицах?

Как БЭСТ узнает какой номер присвоить новому заказу?
Например:
Много пользователей делают заказы, он каждому новому заказу выдает номер последнего КОНСТРУИРУЕМОГО +1, т.е. если последний записанный заказ 100, 5 пользователей делают заказы и заходит 6-й, то ему он выдаст номер 106.

Где хранит информацию о новом заказе в процессе его создания (пока его не записали)?

Дело в том, что мне на Дельфе нужно написать добавление заказов прямо из приложения.
Back to top
View user's profile Send private message Send e-mail
MasMas



Joined: 11 May 2002
Posts: 19
Location: Малюков Александр


PostPosted: 26 Jun 2002 17:38    Post subject: Reply with quote

Quote:

Как БЭСТ узнает какой номер присвоить новому заказу?
Где хранит информацию о новом заказе в процессе его создания (пока его не записали)?

Посмотри /каталогбазы/SCKAD/00000000.000 или 00000000.мем
Back to top
View user's profile Send private message Send e-mail
Egor_M



Joined: 20 Jun 2002
Posts: 10



PostPosted: 27 Jun 2002 08:18    Post subject: Reply with quote

Какой у него формат?
Я понял что в конце идет последний номер, а что идет до нег
Back to top
View user's profile Send private message Send e-mail
NDG



Joined: 10 Jun 2002
Posts: 13



PostPosted: 27 Jun 2002 08:37    Post subject: Reply with quote

CRC код не нужен заполняеш на шару подходяшей последовательностью и в
Back to top
View user's profile Send private message
OlgaLeonova



Joined: 14 Mar 2002
Posts: 112
Location: Леонова


PostPosted: 28 Jun 2002 12:38    Post subject: Reply with quote

__________________________
Как БЭСТ узнает какой номер присвоить новому заказу?
________________________________

А вот прикол с новым номером:
В справочнике партнеров уже есть код "9999 " и "10000 ". При сортировке по кодам последний -"9999 ",т.е. сортировка символьная
F4- дает "10000 " , т.е. алгоритм поиска следующего номера - последний символьный+еденица к числу.
Ну если уж символьные номера, то следующий "99991 " хотя бы.
Теперь страдаем. Последний номер ручками ищем ;(
Back to top
View user's profile Send private message Send e-mail
ksenya



Joined: 01 Feb 2002
Posts: 112



PostPosted: 04 Oct 2004 15:05    Post subject: Reply with quote

NDG wrote:
CRC код не нужен заполняеш на шару подходяшей последовательностью и всё

Вопрос достаточно часто поднимался на форуме, перечитала все обсуждения на эту тему, но... Внятного ответа кроме этого не нашла.
Подскажие пожалуйста (очень нужно сейчас, в связи с прописыванием импорта-экспорта с внешними прогами) - Заполнение или незаполнение CRC как-то на что-нибудь влияет??? Если да, то как его заполнить?
Back to top
View user's profile Send private message Send e-mail
grey



Joined: 12 Jan 2004
Posts: 297
Location: Родионов С.Г.
Occupation: ООО Бухгалтер, программист
Interests: Набережные Челны

PostPosted: 05 Oct 2004 10:37    Post subject: Reply with quote

На работу не влияет. Просто будет ругать "физический сбой" при контроле целостности.
Back to top
View user's profile Send private message Visit poster's website
ksenya



Joined: 01 Feb 2002
Posts: 112



PostPosted: 05 Oct 2004 10:50    Post subject: Reply with quote

grey wrote:
На работу не влияет. Просто будет ругать "физический сбой" при контроле целостности.

Спасибо, если так. Значит, надо просто заполнять это поле какой-то левой последовательностью? Или можно вообще пустым оставлять?
Back to top
View user's profile Send private message Send e-mail
Krosh



Joined: 13 Oct 2003
Posts: 97
Location: КИА
Occupation: СТ
Interests: Москва

PostPosted: 05 Oct 2004 10:52    Post subject: Reply with quote

Уж сколько раз твердили ... ИС - надо счетчики номеров через БД раздавать, в не через идиотскую систему сохранения переменных.

Моё решение такое - написал прогу на Clipper, которая мониторит:
1. номера из Книги заказов (REAL\RBOOK.DBF)
2. номера из архивной Книги заказов (SCLAD\ARC\ARBOOK.DBF)
3. счётчик номеров заказов - файл SCLAD\00000000.000
( Нормально? счётчик номеров ЗАКАЗОВ в директории склада!!!!
Боремся со здравым смыслом??? )

По обеим БД строится БД "дырок", то есть диапазоны свободных номеров.
Далее прога берёт текущий номер из счётчика и пытается (довольно успешно, надо сказать) мониторить:
1. Запись заказа в Книгу заказов
2. Изменение счётчика

Т.о. отслеживается "раздача" номеров из "дырок". Если дырка становиться маленькой, то прога принудительно переставляет счётчик на следующую подходящую дырку.
Подходящей считается дырка с не менее чем 3 номера.

Обеспечивается практически 95% утилизация номеров заказов.
Back to top
View user's profile Send private message
Bestovichek



Joined: 22 Mar 2002
Posts: 257



PostPosted: 05 Oct 2004 14:45    Post subject: Reply with quote

из БД номер заказа это хорошо, а вот если в один момент времени выписывают 5 счетов? совпадение номера неизбежно
Back to top
View user's profile Send private message Send e-mail
Krosh



Joined: 13 Oct 2003
Posts: 97
Location: КИА
Occupation: СТ
Interests: Москва

PostPosted: 06 Oct 2004 09:33    Post subject: Reply with quote

Заказов (не счетов, будем точными, т.к. по заказу можно много счетов сделать и напечатать) одновременно может делаться гораздо больше 5, но:
1. Всё же события в сети никогда не будут ОДНОВРЕМЕННЫМИ, хотя бы потому, что протокол работы это всёже не постоянный двунаправленный поток, а "порционный". Т.е. всегда кто-то будет раньше, кто-то позже.
2. В БЭСТ при создании заказа сразу берётся номер из счётчика и счётчик делает инкремент. Поэтому (теоретически) пято хакахов - пять номеров. Но это было бы именно так, если бы не одно НО. ИС сделали систему нумерации на механизме считывания из файла в память значения переменной счётчика. Между считыванием и записью на диск значения+1 есть временной лаг, определяемый как сетевыми операциями, так и загрузкой конкретного компа и т.д. Итог - ВОЗМОЖНО ПОВТОРНОЕ считывание одного и того же номера.
Итог ясен - конфликт при записи заказа ("такой номер есть и пользователь вводит номер ручками. Почему же опять не взять номер из счётчика, ИС, а?)
Далее ИМХО, т.к. особо не замудрялся и не анализировал досконально.
Когда пользователь отказывается от записи заказа, БЭСТ помещает не нужный номер опять в файл счётчика. Типа recycling.

ИС! Когда же наконец на замечания будут аргументированные ответы?
ПОЧЕМУ НЕЛЬЗЯ СДЕЛАТЬ НУМЕРАЦИЮ ЧЕРЕЗ БД?
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic   printer-friendly view     Forum Index -> БЭСТ-4 All times are GMT + 4 Hours
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © phpBB Group

Rambler
Rambler's Top100 Рейтинг@Mail.ru