|
MySQL.RU - Webboard
Вернуться
А как тогда сделать... (Andre) 02/01/2003 - 13:44:21
Re: А как тогда сделать... (walrus) 02/01/2003 - 14:14:16
Re: Кажется получилось. Спасибо(-) (Andre) 02/01/2003 - 17:18:06
Re: А как тогда сделать... (Dinky) 03/01/2003 - 20:01:50
Re: А как тогда сделать... (Dinky) 03/01/2003 - 20:01:53
Re: А как тогда сделать... (wlera) 21/01/2005 - 19:30:16
> Original message text:
> From: Andre - 02/01/2003 - 13:44:21
> Subject:А как тогда сделать...
> -----------------
> Допустим, что я должен выполнить 100 запросов к БД. Например, воткнуть сотню новых записей. Если у меня потеряется коннект к базе, и выполнится всего 60 запросов вместо ста, то содержимое базы перестанет быть правильным.
>
> Вопрос: как сделать так, чтобы изменения в базу записывались только при выполнении всех ста запросов. В противном случае ни одно изменение в базу не записывалось бы?
>
> P.S. Delphi, библиотека от Zeos.
>
> P.S. Подозреваю, что делать это надо транзакциями, но как? Каждый из ста запросов имеет вид: insert into (..) values (..) и выполняется с помощью ExecSQL.
>
> Заранее благодарен.
>
From: walrus - 02/01/2003 - 14:14:16
Subject:А как тогда сделать...
-----------------
для этого в mysql вам надо использовать innodb или bdb тадлицы.
то есть создаете их типа
create table какоетоимя (какиетополя) type=innodb;
далее выдаете sql камманду
begin
потов все ваши инсерты (или что там еще надо.)
И когда все 100 записей вставите - sql команда
commit
и все. Если между begin и commit что то пойдет не так (например сервер перезагрузят) - все что после begin - не будет в базе данных. Если после begin вы сами обнаружите какой-нибудь косяк и решите откатить ваши инсерты то вместо commit отправитье sql команду rollback
[Это сообщение - спам!]
Последние сообщения из форума
Уважаемые посетители форума MySQL.RU!
Убедительная просьба, прежде чем задавать свой вопрос в этом форуме, обратите внимание на разделы:
- ответы на наиболее часто задаваемые вопросы - FAQ
- раздел документация
- раздел поиск по сообщениям форума и документации
Также, старайтесь наиболее подробно указывать свою ситуацию (версию операционной системы, версию MySQL,
версию программного обеспечения, по которому возникает вопрос, текст возникающих ошибок, и др.)
Помните, чем конкретнее Вы опишете ситуацию, тем больше шансов получить реальную помощь.
19683
|
|