![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Не работает AutoInc поля [D5, dBase, FoxPro]
Alex Shulg © (2002-07-22 13:34:00)Таблицы базы содержат поля NRec (float), значения которых должны формироваться автоматически. При задании свойства поля AutoGenerateValue = arAutoInc ничего не работает. Записывает либо пустое поле, либо одно и тоже, а нужно чтобы был уникальный номер записи. В чем проблема, может я чего не так делаю?
Lord Warlock (2002-07-22 15:17:00) [1]
> MsGuns © (22.07.02 15:09)
Слюшай, по моему не в той ветке пишем...
Lord Warlock (2002-07-22 15:15:00) [2]
> MsGuns © (22.07.02 15:09)
а, вот в чем дело... Придется тебе видать снова эти 3с переписывать и 5 раз оптимизировать. просто другие варианты отпадают, если не использовать OnScroll, таблица сразу уходит из dsEdit или dsInsert.. Может только компонент какой найдется, я таких не знаю, да и про эту возможность слышу в первый раз как ни странно.. :(
MsGuns (2002-07-22 15:09:00) [3]>Lord WarLock
Алгоритм для такой фунции совсем не так прост, как кажется..
Дело в том, что в общем случае надо предусмотреть возможность определения числа в диапазоне двух других чисел (ключи пред. и последующей записей) У меня есть одна прога старая (еще в Paradox 3.5), где эта задача реализована, так там кода на 3 с лишком экрана.., причем я его оптимизировал раз 5)
А вся сложность в том, что юзер может тупо вставлять записи в одно и то же место (что чаще всего и делает), т.е.
Шаги i-я запись Вставляемая запись i+1-я запись
---- ----------------- ------------------ -------------
1 1 1.1 2
2 1 1.01 1.1
3 1 1.001 1.01
...
Lord Warlock (2002-07-22 14:55:00) [4]Можно написать свою ф-цию, тогда счетчик не будет зависеть от базы. Проставить ее на OnNewRecord, саму ф-цию проще написать на основе запроса типа Select MAX(ID) from Table
sniknik (2002-07-22 14:51:00) [5]Либо самому Id держать и прописывать либо Парадокс как альтернатива. (ранние форматы тоже без автоинкремента) создавай таблицу (для пробы) в Датабасе десктоп там видно.
Alex Shulg (2002-07-22 13:50:00) [6]to sniknik
Дело в том, что у меня это как-то раз получилось, а потом опять перестало работать. Но как тогда сформировать уникальный номер записи (необходим для связи между таблицами)?
sniknik (2002-07-22 13:37:00) [7]dBase и старые FoxPro форматы не поддерживают автоинкремент. может в этом все дело?