Добавление записи

Clarion, Clarion 7

Модератор: Дед Пахом

Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
Ответить
SSTA
Бывалый
Сообщения: 52
Зарегистрирован: 03 Февраль 2006, 5:41
Откуда: Хабаровск

Добавление записи

Сообщение SSTA »

Здравствуйте.
CW 6.3
Не могу уловить закономерность: добавляю запись в таблицу tps стандартным темплейтом form. Непонятка: в некоторых приложениях во время нахождения в form (режим Insert) в таблицу добавляется нулевая запись (при отмене добавления - убдаляется), а в некоторых нулевая запись не появляется. Что там происходит и как с эти жить?
Александр Т.
C уважением, Александр Т.
BOB
Ветеран
Сообщения: 336
Зарегистрирован: 17 Июль 2005, 5:43

Re: Добавление записи

Сообщение BOB »

Посморти на ключевые поля файлов. Нет ли там поля содержимое которого опредеряется так .
set(file.kluc)
previous(file)
pole +=1
А теперь подумай , что будет если на двух компах одновременно нажмут инсерт?
Способ избежать дублирование ключей программист должен придумывать сам , или понимать уже придуманное
с лету . Включай мозги.
SSTA
Бывалый
Сообщения: 52
Зарегистрирован: 03 Февраль 2006, 5:41
Откуда: Хабаровск

Re: Добавление записи

Сообщение SSTA »

1. Ключевых полей, определяемых таким образом нет.
2. Работаю в локале, то есть один (программа в разработке).
Проблема возникла из-за того, что в режиме Insert необходимо походить по этой же таблице и кое что поискать, потом вернуться к вводимой записи. А тут такая незадача - Insert неоднозначно себя ведет. То ли мне position запоминать, то ли всю запись сохранять в буфере.
C уважением, Александр Т.
BOB
Ветеран
Сообщения: 336
Зарегистрирован: 17 Июль 2005, 5:43

Re: Добавление записи

Сообщение BOB »

2. Работаю в локале, то есть один (программа в разработке).
Это ничего не значит , Файлы открываются как share ? т.е. для совместного использования, возможно при монопольном открытии поведение программы изменится (зависит от темплэйтов) которых я не знаю .
Для 'походить по таблице' нужно из формы вызвать эту-же таблицу и при правильном программировании на положение
строки это никак не скажется .
Аватара пользователя
Admin
Администратор
Сообщения: 3960
Зарегистрирован: 05 Июль 2005, 15:59
Откуда: Хабаровск
Благодарил (а): 25 раз
Поблагодарили: 22 раза
Контактная информация:

Re: Добавление записи

Сообщение Admin »

BOB писал(а):Для 'походить по таблице' нужно из формы вызвать эту-же таблицу и при правильном программировании на положение
строки это никак не скажется .
Сделай алиас на таблицу и все. Хоть заходись по ней, текущий буфер не испортишь.
Рай совершает ошибки ничуть не реже чем ад. Просто у него хорошая пресса
Аватара пользователя
Admin
Администратор
Сообщения: 3960
Зарегистрирован: 05 Июль 2005, 15:59
Откуда: Хабаровск
Благодарил (а): 25 раз
Поблагодарили: 22 раза
Контактная информация:

Re: Добавление записи

Сообщение Admin »

SSTA писал(а):Непонятка: в некоторых приложениях во время нахождения в form (режим Insert) в таблицу добавляется нулевая запись (при отмене добавления - убдаляется), а в некоторых нулевая запись не появляется.
Судя по всему запись добавляется на таблицах с ключами имеющими свойство AutoNumber=1
Т.е. по сути резервируется номерок... при отмене запись удаляется.
Если нет автоинкрементного ключа, подозреваю запись в файл не будет добавляться.
Но точно не помню. Давно на SQL живем...
Рай совершает ошибки ничуть не реже чем ад. Просто у него хорошая пресса
lsgsoftware
Ветеран
Сообщения: 311
Зарегистрирован: 08 Июль 2005, 22:04

Re: Добавление записи

Сообщение lsgsoftware »

Да,знакомая картина.Метод лечения - добавить primary-ключ и делать автоинкремент
именно по этому ключу.На этом пути у меня проблем не было даже при работе в сети.Даже проводил
специальные тесты и все вроде работало правильно.
Igor
Бывалый
Сообщения: 75
Зарегистрирован: 08 Июль 2005, 11:03
Откуда: Королев

Re: Добавление записи

Сообщение Igor »

Проблема возникла из-за того, что в режиме Insert необходимо походить по этой же таблице и кое что поискать, потом вернуться к вводимой записи.
Попробуй в Helpe походить на строчку SaveFile или RestoreFile .
Ответить