Страница 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 .