Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.11.25;
Скачать: CL | DM;

Вниз

Хочу аналог интербейсовского генератора в аксесе...   Найти похожие ветки 

 
AccessLamer   (2002-11-06 11:49) [0]

Возможен ли сабж?

Зы. Автоинкрементное поле не катит, так как id нужно уникальным для базы, а не для отдельной таблички.

Да, работать с базой буду через ADO.

Зы2. Сорри за возможно ламерский вопрос, я акссесс только три дня назад увидел, раньше как только мог, обходил стороной.. Не судьба видно..


 
Alexandr ©   (2002-11-06 11:50) [1]

забудь про Аццесс


 
Romkin ©   (2002-11-06 11:55) [2]

А ты GUID генери и вставляй, в MSSQL так и делают :-))
uuidCreate, CoCreateGUID... 16 байт


 
Ihor Osov'yak ©   (2002-11-06 11:57) [3]

2 Alexandr © (06.11.02 11:50)

Рад бы, но заказчих хочет многоплатформенную поддержку дб, втч аксесс. Типа бедный или не очень продвинутый работает с аксеес, а нормальный - юзает другой движок


ЗІ. Сорри за маскировку под псевдо, все же немного стыдно немного ламерские вопросы задавать..





 
Alexandr ©   (2002-11-06 11:59) [4]

бедный? С аццесс?


 
Ihor Osov'yak ©   (2002-11-06 12:01) [5]

2 Romkin © (06.11.02 11:55)

Совет дельный, но мне нужно моннотоно возрастающий, в тч для организации баккупа вновь доданных записей.

Во вторых, генерация на стороне клиента не идет, так как не исключено, что работать будут несколько клиентов одновременно.

Да, и где в инете есть нормальный ресурс по акксесу, типа этого по делфи (желательно рускоговорящий)?



 
sniknik ©   (2002-11-06 12:12) [6]

Только через отдельную таблицу с автоинкрементом возможно (по моему), в общем придется изгалятся.


 
Romkin ©   (2002-11-06 12:13) [7]

Ну то, что несколько клиентов - какая разница??? GUID уникальные будут, хоть как извращайся
Нормальных ресурсов для Акксесса нет по определению, ИМХО :-))
Попробуй форумы (по MSSQL) на www.sql.ru www.relib.com
А вот монотонно возрастающий - явно табличка в БД, с блокировкой доступа (как на аксесс блокировать - понятия не имею)
или для бекапа запоминать использованные GUID в отдельной таблице


 
Jeer ©   (2002-11-06 12:43) [8]

Можно использовать след прием - работает..

1.SELECT MAX(ID) FROM..

2.idm := field[0].AsInteger + 1;
Т.о. на клиента имеешь предполагаемый max id

3.Затем добавляешь запись с данным idm и на исключении повторяешь ограниченное число раз до успеха или отказа.

Если отказ - значит кто-то успел раньше вставить данный idm
поэтому повторяешь с 1 по 3 опять же зданное число раз.

Оповещаешь пользователя при полном отказе.
Число вн и внеш. повторений определяется сеткой, СУБД, числом пользователей.
Обычно 5-6 для внеш. и 2-3 для внутр.

Все это обрамляется транзакцией, если поддерживается.
Проблем за несколько лет использования такого приема не замечено.
Применять там где мешается инкремент и нет других способов генерации уникальных id.
Шутки ради было откатано и на IB - без проблем.


 
Jeer ©   (2002-11-06 12:46) [9]

Кому покажется это странным - вспомните, что доступ в сеть Ethernet вообще построен на коллизиях (соревновании в доступе и конфликтах).
Такие системы как правило более устойчивы, т.к. в них заложен стохастический принцип работы, а не детерминированный.


 
Ihor Osov'yak ©   (2002-11-06 12:52) [10]

2 Jeer © (06.11.02 12:43)

Наверно так придется и делать. Но пермишн уж очень пострадает. :-(


 
Jeer ©   (2002-11-06 12:57) [11]

>так как id нужно уникальным для базы

Этот прием работает как для каждой таблицы, так и для выделенной таблицы, где будет уникальным уже для базы



Страницы: 1 вся ветка

Текущий архив: 2002.11.25;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.023 c
14-82928
MJH
2002-10-23 05:30
2002.11.25
Почему


14-82916
Svetlana
2002-11-04 22:17
2002.11.25
Как перекинуть исходник и форму из Delphi 6 в Delphi 5


14-83003
Николай Быков
2002-11-08 01:24
2002.11.25
Помогите найти статью


14-83009
Undert
2002-11-07 21:41
2002.11.25
Yo! Masters of Delphi на 2 месте ...


1-82730
.nuke
2002-11-13 13:14
2002.11.25
Маркер (курсор) в TMemo