| 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 |  | 
	
		|  | 
	
		|  |