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

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

можно ли сделать delay в ХП IB7.5? [IB7.5]


Страницы:   1 2

July ©   (2009-02-11 11:08:00) 

Здравствуйте!
Собственно вопрос коротко - в теме.
Т.е. ищу возможность, подобную функции waitfor в SQL-Server.
Нужно с целью иметь возможность подождать несколько секунд и сделать повторную попытку проверки данных и так несколько раз, прежде чем отвалить сообщение, что допустимое время ожидания истекло. Ну или,  если какая-то из попыток оказалась успешной, продолжить работу процедуры.
Очень желательно сделать это не из приложения, а именно внутри хранимой процедуры БД.
Возможно ли это в Interbase  в принципе?


July   (2009-02-11 12:18:00) [21]

на [13] см. [12]
поясню, откуда такая идея - просто эта проверяемая запись - флаг, означающий, выполняется ли еще некая обработка над совокупностью данных, имеющая некоторое отношение к этой записи.
Так туманно - совокупность, потому что данные по нескольким таблицам, не всегда непосредсвенно связанным, чтобы просто положиться на автоматическую проверку целостности и обработка тоже достаточно навороченная и растянутая по времени, короче говоря это все приводит к тому, что гарантий, которые дает манипулирование настройками уровнями изоляций, недостаточно, приходится раздумывать над добавлением своих таких вот извращенских методов.
Я знаю, что это все из-за изначально заложенной в базу избыточности, эта тема отдельная, сейчас не о ней.


Johnmen   (2009-02-11 12:12:00) [22]


> July   (11.02.09 12:07) [12]

1. Если это про указанное извращение, то оно никому не нужно. Даже тебе.
2. Задержку делаешь циклом с проверкой наперед заданного времени.


Сергей М.   (2009-02-11 12:11:00) [23]

http://www.ibase.ru/devinfo/pslock.htm


Сергей М.   (2009-02-11 12:08:00) [24]


> Конечно нет


Да, это я ляпнул - прочитал одно, а думал про другое.


> July


Ответишь на [7] ?


July   (2009-02-11 12:07:00) [25]


> Ты, похоже, таким макаром пытаешься эмулировать блокировку
> одновременного доступа к записи ?

угадали :)
извращенский способ, да? :)
другого в голову пока не пришло..

Johnmen
> Я думаю, что будет.


Я смотрю есть разногласия по этому вопросу.
Так или иначе, я бы с этим разобралась, если бы была возможность поэкспериментировать.
А пока я возилась с переменными типа timestamp, пыталась манипулировать вычислениями истеrшего времени, но что-то ничего не получается..

to Кщд - может и не понадобиться, придумается что-нибудь более умное, но это не главный вопрос в данный момент вопрос, который занимает - мне просто нужно уяснить, можно ли вообще технически сделать вручную delay внутри процедуры Interbase?


Кщд   (2009-02-11 12:05:00) [26]

>July   (11.02.09 12:01) [8]
никаких "других" правил
процедура выполняется в контексте транзакции


Кщд   (2009-02-11 12:02:00) [27]

>Сергей М. ©   (11.02.09 11:56) [5]
это какая-то уникальная фича IB7.5 - не видеть данных, подтвержденных другой транзакцией, при уровне read committed?


Johnmen   (2009-02-11 12:01:00) [28]


> Сергей М. ©   (11.02.09 11:56) [5]

Я думаю, что будет.


July   (2009-02-11 12:01:00) [29]

Тогда поправьте, если не трудно.
Что же, даже если процедура делается в рамках транзакции с уровнем read commited, для операторов, которые внутри нее действуют другие правила?


Сергей М.   (2009-02-11 12:00:00) [30]


> July


Ты, похоже, таким макаром пытаешься эмулировать блокировку одновременного доступа к записи ?


Кщд   (2009-02-11 11:59:00) [31]

>July   (11.02.09 11:51) [4]
правильно

а вот делать delay, скорее всего, неправильно
но, впрочем, в Вашем посте нет информации "против" такого подхода, но нет и "за"


Сергей М.   (2009-02-11 11:56:00) [32]


> не правильно?


Конечно нет)


July   (2009-02-11 11:51:00) [33]

Слышала, слышала :)
Read commited
правда что-то я засомневалась, правильно ли я понимала..
я думала, что при таком уровне, если во время выполнения моей процедуры другой транзакцией данные будут изменены и сделан commit, в процедуре это станет видно, ..не правильно?


Сергей М.   (2009-02-11 11:42:00) [34]


> если оно <>0, надо подождать


Эдак ты у моря погоды будешь ждать, до самого морковкиного заговения)
Про уровни изоляции транзакций что-нибудь слышала ?


July   (2009-02-11 11:29:00) [35]


> Каких ?

Просто запросом читаю поле из обычной таблицы, если оно <>0, надо подождать, иначе - все ОК и поехали дальше


Сергей М.   (2009-02-11 11:21:00) [36]


> попытку проверки данных


Каких ?
Конкретней ..


Страницы:   1 2

Наверх

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