Страница 1 из 1

Проблемы с автонумерацией

Добавлено: 10 Январь 2007, 11:18
Aragorn
C55, ABC, многопользовательский режим :oops: .

В таблице два уникальных ключа. Первый ключ - ID с автонумерацией, второй - ФИО клиента и его дата рождения.
Ситуация: два пользователя с разных станций ОДНОВРЕМЕННО делают добавление РАЗНЫХ записей (т.е. гарантированно разных клиентов) в эту таблицу, при этом работает следующий код (без Form):

Код: Выделить всё

!<вызов некой внешней dll для получения данных>
TAB:ID = 0
TAB:FIO = Glo:FIO
TAB:BDay = Glo:BDay
If Access:Table.Insert() <> Level:Benign Then Do ErrorMsgShow End
Так вот, при отработке этого кода регулярно возникает сообщение типа (точную формулировку не помню)

Попытка автонумерации записи привела к следующей ошибке:
ErrorCode = 40 (Creates Duplicate Keys)

ЧТО ЕТО??????? Помогите плиз.

Добавлено: 10 Январь 2007, 13:36
Aragorn
Ау, специалисты???..
:shock: :?: :?: :?: :shock:

Добавлено: 10 Январь 2007, 13:51
Andrew Listiev
Специалист, вы про автонумерацию читали???? :wink:

Добавлено: 10 Январь 2007, 13:52
Andrew Listiev
Что камасутру на предмет TryPrimeAutoInc

Добавлено: 10 Январь 2007, 14:00
Aragorn
Я не специалист, я в вечных ученьях...
И вообще это не у меня возникла такая проблема :?
Так что уж смените гнев (и иронию) на милость, обьясните популярно...
пожалуйста...

Добавлено: 10 Январь 2007, 14:12
Andrew Listiev
Я же написал: класс FileManagerClass, методы TryPrimeAutoInc, PrimeAutoInc. Почитай, там всё нормально описано.

Добавлено: 10 Январь 2007, 15:00
Aragorn
Почитал!... И что там написано такого, что может осенить?.. Не понимаю, видать совсем тупой стал.
Может, цитатку подкинете?

Re: Проблемы с автонумерацией

Добавлено: 10 Январь 2007, 15:15
Andrew Listiev
Aragorn писал(а):C55, ABC, многопользовательский режим :oops: .

Код: Выделить всё

!<вызов некой внешней dll для получения данных>
TAB:ID = 0
TAB:FIO = Glo:FIO
TAB:BDay = Glo:BDay
If Access:Table.Insert() <> Level:Benign Then Do ErrorMsgShow End
А кто сказал что этот код будет инкриминировать TAB:ID ?????

Добавлено: 10 Январь 2007, 15:19
lsgsoftware
Ты не написал про модель данных, а это очень важно. Если модель данных клашина( дат или трс), то автонумерация - штука стремная. Я штатную автонумерацию не использую и пишу код ручками - вариантов решения этой проблемы много - читай дискуссии на форуме

Добавлено: 10 Январь 2007, 17:18
Aragorn
А кто сказал что этот код будет инкриминировать TAB:ID ?????
А почему не будет???????
Ты не написал про модель данных, а это очень важно. Если модель данных клашина( дат или трс), то автонумерация - штука стремная. Я штатную автонумерацию не использую и пишу код ручками - вариантов решения этой проблемы много - читай дискуссии на форуме
TPS, и то, что автонумерацию при этом очень желательно делать через файлик в котором лежат последние уникальные значения - это нам известно, но штука в том, что в данном приложении есть большое желание докопаться до того, что же все-таки происходит, а уж потом сделать (наверное) уже ручками...
Все-таки очень нужно выявить причину, почему же не проходит стандартная автонумерация, так сказать аргументировать неообходимость изменить методику...

Добавлено: 11 Январь 2007, 0:18
Admin
А так что не работает уже?

Код: Выделить всё

TAB:ID   = 0 
TAB:FIO  = Glo:FIO 
TAB:BDay = Glo:BDay
IF Access:Table.PrimeAutoInc() <> LEVEL:Benign
  Access:Table.CancelAutoInc()
ELSE
  Access:Table.Insert()
END 
И еще! Смотрите внутрь: ABFILE.CLW

Добавлено: 11 Январь 2007, 13:57
lsgsoftware
Да переходи ты на SQL.Если затянешь время, потеряешь заказчиков.Это не так уже трудно.