Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Не работает 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 форматы не поддерживают автоинкремент. может в этом все дело?


Наверх

Титульная страница Поиск, карта сайта Написать письмо