Главная страница


ru.perl

 
 - RU.PERL ----------------------------------------------------------------------
 From : Artem Chuprina                       2:5020/371.32  03 Aug 2001  16:19:24
 To : Konstantin Ryabov
 Subject : Re: Вытаскивание ID последнего инсерта в базу
 -------------------------------------------------------------------------------- 
 
 KR> так вы не поняли
 KR> весь смысл в том что бы сделать прогу базо независимой.
 KR> в ней будет меняться только драйвер DBD
 
 В более-менее сложном случае это с разумной надежностью невозможно. Уж больно
 базы разные.
 
 KR> и тут нельзя юзать что то что предоставляет сама база.
 
 KR> тут пробегала идея насчет блокировать таблицу затем инсертить
 KR> вытаскивать по максимальному ID и разблокировать.
 
 KR> Внимание вопрос: существует ли какой либо способ
 KR> блокировать таблицу но только средствами perl
 
 KR> например пока один скрипт пишет в базу он где то устанавливает флаг
 KR> и пока он установлен все другие скрипты ждут.
 
 Hет, не существует. Если нижележащая операционка поддерживает System V IPC, то
 можно выставлять семафоры, если нет, можно делать файлы-семафоры, но это все с
 разумной надежностью (надежнее тупого max(id)) довольно геморройно и заметно
 проигрывает штатным механизмам по времени выполнения. Ты чем так страдать,
 заведи 1 (одну) функцию, которая будет отвечать за выдачу этого id, и
 переписывай ее в зависимости от базы. Можно в отдельный модуль вынести, только
 я обычно в отдельный модуль выношу всю работу с базой, ибо к разным базам и
 запросы строятся по-разному.
 
 -- 
 Artem Chuprina <ran@ran.pp.ru>
 FIDO: 2:5020/371.32
 --- slrn/0.9.7.0 (Linux)
  * Origin: AKA с подствольным плюсомётом (2:5020/371.32)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 Re: Вытаскивание ID последнего инсерта в базу   Artem Chuprina   03 Aug 2001 16:19:24 
Архивное /ru.perl/7378832a92db2.html, оценка 1 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional