Новости
Документация
Download
Webboard
Поиск
FAQ/ЧаВо
Обратная связь




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, версию программного обеспечения, по которому возникает вопрос, текст возникающих ошибок, и др.)
Помните, чем конкретнее Вы опишете ситуацию, тем больше шансов получить реальную помощь.
 Имя:
 E-mail:
 Тема:
 Текст:
Код подтверждения отправки: Code
19683



РЕКЛАМА НА САЙТЕ
  Создание сайтов | |