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

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

не могу залоковать таблички [D6, MySQL]


Opryshok ©   (2003-03-10 10:04:00) 

Здрасти !

короче програма типа сетевая.(MySQL)

проблема состоит вот в чем:
нужно сделать следующее:
LOCK table1 read, table2 write;
select * from table1;
update table2;
UNLOCK TABLES;


Єторабоае корректно тока когда с одного потока последовательность команд запускать, тоесть с одного шела или в случае Делфи с одной Квери.

Все работает ок:

Query1.Clear;
query1.SQL.Add(qry1);//lock
query1.execsql;
query1.SQL.Add(qry2);//statement1
query1.execsql;
query1.SQL.Add(qry3;//statement2
query1.execsql;
query1.SQL.Add(qry4);//unlock
query1.execsql;


проблема возникает при одновремееном выполнении кода с двох разных машин
коип1 : лок
комп2 : ждет пока розлокуется
но тока напервом компе доходит до подмены SQL(statement 2), сразу разлоковуется комп 2 и тогда ситуация вообще неподконтрольна - кто хочет апдейтует, читает. Думаю изложил внятно...

И ничего не могу поделать. Пробую как-то вписать все четыре стейтмента в Кверю, но безуспешно. Возможно вообще написать несколько выражений в Кверю? Как мне обойти проблему?

Спасибо


Opryshok   (2003-03-10 17:31:00) [1]

ничего никто не говорит.(((( просто ждет....

блин, так пусть себе и ждет.... но мне нужно с квери, которая залокировала вьіполнить еще вьіражения, а я не могу.... нто за фигня... ну хоть кто-нибудь чем-нибудь помогите!!!!!!! плиз


Mike Kouzmine   (2003-03-10 15:41:00) [2]

Работаешь через БДЕ? Тогда возьми TTable и попробуй открыть ее в эксклюзиве, вероятно, скажет что не может.


Opryshok   (2003-03-10 15:15:00) [3]


> Mike Kouzmine


> Если таблица заблокирована, то при соответствующей операции
> возникнет exception

в том и беда, что нифига не возникает. Просто ждет себе пока кто-то не розлокует... и все.

Я тогда не понимаю: неужели с Делфи ЛОК и АНЛОК невозможно использовать?


Mike Kouzmine   (2003-03-10 14:43:00) [4]

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


Opryshok   (2003-03-10 13:34:00) [5]

Может средствами mysql возможно узнать залокована ли какая-то табличка?
> Mike Kouzmine (10.03.03 12:59)
> А что ты этим хочешь сказать?

А что ТЬІ этим хочешь сказать?


Mike Kouzmine   (2003-03-10 12:59:00) [6]

А что ты этим хочешь сказать?


Наверх

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