Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2002.11.25;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.01 c
4-83067
Semion
2002-10-12 08:27
2002.11.25
как всеже рисовать на предмете хендл которого есть


14-82946
Dmitriy Polskoy
2002-11-04 18:59
2002.11.25
Win 2000 Advanced Server


1-82747
SuperVK
2002-11-11 12:17
2002.11.25
Автоматическая прокрутка в TRichEdit глючит с RTF


3-82658
kern
2002-11-06 13:17
2002.11.25
Read about Paradox


3-82650
koks
2002-11-05 10:21
2002.11.25
QuantumGrid: сортировка.





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский