Страница 1 из 1
					
				Добавление записи
				Добавлено: 12 Ноябрь 2010, 3:41
				 SSTA
				Здравствуйте.
CW 6.3
Не могу уловить закономерность: добавляю запись в таблицу tps стандартным темплейтом form. Непонятка: в некоторых приложениях во время нахождения в form (режим Insert) в таблицу добавляется нулевая запись (при отмене добавления - убдаляется), а в некоторых нулевая запись не появляется. Что там происходит и как с эти жить?
Александр Т.
			 
			
					
				Re: Добавление записи
				Добавлено: 12 Ноябрь 2010, 4:40
				 BOB
				Посморти на ключевые поля файлов. Нет ли там поля содержимое которого опредеряется так . 
set(file.kluc)
previous(file)
pole +=1
А теперь подумай , что будет если на двух компах одновременно нажмут инсерт?
Способ избежать дублирование ключей программист должен придумывать сам , или понимать уже придуманное
с лету . Включай мозги.
			 
			
					
				Re: Добавление записи
				Добавлено: 12 Ноябрь 2010, 5:31
				 SSTA
				1. Ключевых полей, определяемых таким образом нет. 
2. Работаю в локале, то есть один (программа в разработке).
Проблема возникла из-за того, что в режиме Insert необходимо походить по этой же таблице и кое что поискать, потом вернуться к вводимой записи. А тут такая незадача - Insert неоднозначно себя ведет. То ли мне position запоминать, то ли всю запись сохранять в буфере.
			 
			
					
				Re: Добавление записи
				Добавлено: 12 Ноябрь 2010, 6:36
				 BOB
				2. Работаю в локале, то есть один (программа в разработке).
Это ничего не значит , Файлы открываются как  share ? т.е. для совместного использования, возможно при монопольном открытии поведение программы изменится (зависит от темплэйтов) которых я не знаю .
Для 'походить по таблице' нужно из формы вызвать эту-же таблицу и при правильном программировании на положение
строки это никак не скажется .
 
			 
			
					
				Re: Добавление записи
				Добавлено: 12 Ноябрь 2010, 7:20
				 Admin
				BOB писал(а):Для 'походить по таблице' нужно из формы вызвать эту-же таблицу и при правильном программировании на положение
строки это никак не скажется .
Сделай алиас на таблицу и все. Хоть заходись по ней, текущий буфер не испортишь.
 
			 
			
					
				Re: Добавление записи
				Добавлено: 12 Ноябрь 2010, 7:24
				 Admin
				SSTA писал(а):Непонятка: в некоторых приложениях во время нахождения в form (режим Insert) в таблицу добавляется нулевая запись (при отмене добавления - убдаляется), а в некоторых нулевая запись не появляется.
Судя по всему запись добавляется на таблицах с ключами имеющими свойство AutoNumber=1
Т.е. по сути резервируется номерок... при отмене запись удаляется.
Если нет автоинкрементного ключа, подозреваю запись в файл не будет добавляться. 
Но точно не помню. Давно на SQL живем...
 
			 
			
					
				Re: Добавление записи
				Добавлено: 12 Ноябрь 2010, 9:11
				 lsgsoftware
				Да,знакомая картина.Метод лечения - добавить primary-ключ и делать автоинкремент
именно по этому ключу.На этом пути у  меня проблем не было даже при работе в сети.Даже проводил
специальные тесты и все вроде работало правильно.
			 
			
					
				Re: Добавление записи
				Добавлено: 12 Ноябрь 2010, 19:55
				 Igor
				Проблема возникла из-за того, что в режиме Insert необходимо походить по этой же таблице и кое что поискать, потом вернуться к вводимой записи.
Попробуй в Helpe походить на строчку SaveFile или RestoreFile .