Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Программирование под Unix/Linux > работа системной функции


Автор: gcc 2.9.2008, 04:09
есть программа (сейчас переделываю клиент-сервер), нужно сделать пару системных функций или одну системную функцию, а другая функцию через в mysql...

то есть елси я вставлю данные в mysql, а системную функцию не сделаю, то будет расхождение данных, если сервер допустим перезагрузиться или глюкнит... 

можно тут сделать "трансакцию", подскжаиет пожалуйста чем это делаеться вообще...
как правильно вообще сделать?

Автор: MAKCim 2.9.2008, 11:26
а по русски можно?  smile 

Автор: Mayk 2.9.2008, 11:32
Ничего не понял, но если есть опасения что после insert'а в бд будет несогласованность данных то копать можно в сторону тригерров выполняющихся до вставки в базу. Информацию о том поддерживает ли mysql транзакции и как их использовать можно подчерпнуть из документации. 

Автор: gcc 2.9.2008, 16:14
 smile  есть программа, нужно сделать: 1) добавить пользователя в систему и создать каталог (и скопировать несколько файлов) ; 2) занести данные в таблицу...

если бедут несогласованность данных, то нужно будент долго искать где ошибка, можно сделать трансакцию? 

что за тригеры? или это нельзя сделать?

может я делаю не правильно, но я уже сделал и исправляю ошибки...

тут навреное нельзя так сделать, трансакция елси я правильно понял то работает с данными, например можно сделать трансакцию при использовании бд как текстовый файл

может есть другая трансакция, например трнасакция классов в ООП?

Автор: gcc 2.9.2008, 23:05
можно сделать по другому в принципе, по проще...

Автор: Ches 3.9.2008, 08:05
Цитата(gcc @  2.9.2008,  16:14 Найти цитируемый пост)
тут навреное нельзя так сделать, трансакция елси я правильно понял то работает с данными, например можно сделать трансакцию при использовании бд как текстовый файлможет есть другая трансакция, например трнасакция классов в ООП?

Мне кажется, что проблема в том, что у Вас каша в голове. Поэтому нужно сначала точно выяснить, что такое http://ru.wikipedia.org/wiki/Транзакция, а потом что такое http://ru.wikipedia.org/wiki/Триггер_(базы_данных)
Всё должно встать на свои места. Думаю, Mayk прав

Автор: gcc 3.9.2008, 16:51
http://www.google.com.ua/search?hl=uk&q=Object+Transaction++C%2B%2B&btnG=%D0%9F%D0%BE%D1%88%D1%83%D0%BA+Google&meta=
http://publib.boulder.ibm.com/infocenter/txformp/v5r1/index.jsp?topic=/com.ibm.txseries510.doc/aetgpo0038.htm
в эту сторону нужно смотреть?
ну есть, например, 2 класса, если можно сделать так, чтобы если один выполниться, а другой нет, то чтобы не выполнялся вообще... в общем это можно "обойти"..

Автор: gcc 3.9.2008, 22:25
кажеться понял, так нельзя...
Код

main a1 {
cp(1 2);}
main a2 {
cp(10 20);}
main a3 {
cp(100 200);}

if (a1()) { 
  if (a2()) {  
  if (a3()) { 
   print "ok"; }
}



Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)