Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2004.08.01;
Скачать: [xml.tar.bz2];

Вниз

COMMIT в ХП   Найти похожие ветки 

 
3APA3A   (2004-07-08 14:29) [0]

Что то не получается...
Создаю в IB Console ХП

  SET TERM!!;
  CREATE PROCEDURE CREATE_CONF_COPY(NAME VARCHAR(32))
  RETURNS
  AS
  BEGIN
    INSERT INTO MYTABLE(STR) VALUES(:NAME);
    COMMIT;
  END!!
  SET TERM;!!
 IB Console мне говорит что Token unknown, line 6 char 3, то есть указывает как раз на первый символ COMMIT...

Как сделать, что бы данные в ХП добавлялись и сразу им COMMIT делался?


 
Johnmen ©   (2004-07-08 14:30) [1]

Никак. Т.к. управление тр-ми прерогатива клиента.


 
3APA3A   (2004-07-08 14:39) [2]

То есть, мне на клиенте надо после вызова ХП делать COMMIT?
Как то неудобно получается...


 
Johnmen ©   (2004-07-08 14:42) [3]

Ну ещё неудобно руль самому крутить...
:)))


 
3APA3A   (2004-07-08 14:47) [4]

Да, и ложку самому держать... =)
 Мне просто интересно, почему нет такой возможности в IB/FB... Ведь очень удобно, блин...


 
Соловьев ©   (2004-07-08 14:49) [5]


> Ведь очень удобно, блин...

где удобно? у сервера что искуственный интелект чтобы он конфликты решил?


 
3APA3A   (2004-07-08 14:56) [6]

Если в моем insert"е возникнет exception, сервер выйдет из ХП и  автоматом вызовет ROLLBACK, правильно?


 
Johnmen ©   (2004-07-08 14:57) [7]

Нет.


 
3APA3A   (2004-07-08 15:01) [8]

А что он(сервер) сделает?


 
Digitman ©   (2004-07-08 15:02) [9]


> 3APA3A   (08.07.04 14:47) [4]
>  Мне просто интересно, почему нет такой возможности в IB/FB...
> Ведь очень удобно, блин...


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

ХП1 в базе 1 выполнилась успехно и подтвердила транзакцию
ХП2 в базе 2 вызвала искл.ситуацию и неподтвердила транзакцию

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

подумай головой-то ...


 
Digitman ©   (2004-07-08 15:04) [10]


> что он(сервер) сделает?


ничего он не сделает
он вернет статус ошибки клиенту

клиент же волен после этого изменить кондиции на нужные и повторно запустить ХП либо откатить транзакцию, ибо это его, клиента, прерогатива !


 
3APA3A   (2004-07-08 15:09) [11]

не настолько уж это и простейший пример - модификация двух баз сразу... тут я понял почему в ХП нельзя COMMIT писать...

 но, если я делаю изменения в одной базе в двух табицах - в ХП сделал все эти изменения и все, либо COMMIT всего, либо ничего...


 
Desdechado ©   (2004-07-08 15:10) [12]

IB не поддерживает автономных (в терминах Оракла) транзакций. Имхо, это правильно.
А то ты попробуешь потом после коммита в процедуре еще какой-нить инсерт сделать... И это будет уже другая (незавершенная) транзакция?


 
3APA3A   (2004-07-08 15:15) [13]

Я не работал с Oracle и не знаю, что в его терминах значит "автономная транзакция"
 Ну да... по крайней мере - мне хотелось бы видеть это именно так...


 
Digitman ©   (2004-07-08 15:17) [14]


> тут я понял почему в ХП нельзя COMMIT писать


уже радует


> если я делаю изменения в одной базе в двух табицах - в ХП
> сделал все эти изменения и все, либо COMMIT всего, либо
> ничего...


мне вот непонятно, это что, так сложно или нонсенс - управлять транзакцией на кл.стороне

старт_транзакции
try
 .. вызов_ХП
подтверждение_транзакции
except
откат_транзакции
raise;
end;

??


 
3APA3A   (2004-07-08 15:22) [15]

Я тут, пока спорили, почитал в других местах и немного осмыслил  все это (как мне кажется =))...

 Да ну не так уж и сложно это, но все равно... (горбатого могила исправит... =) )



Страницы: 1 вся ветка

Форум: "Базы";
Текущий архив: 2004.08.01;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.48 MB
Время: 0.072 c
14-1089881551
Юрий Зотов
2004-07-15 12:52
2004.08.01
С Днем Рождения тебя, Цифровой Человек!


14-1089165590
Думкин
2004-07-07 05:59
2004.08.01
С днем рождения! 7 июля


4-1087732883
Minori
2004-06-20 16:01
2004.08.01
Можно ли отследить нажатие Win+[какая нибудь клавиша]?


3-1089009769
Mitrofan
2004-07-05 10:42
2004.08.01
FIBPlus + префикс MAS


8-1084805967
Uran
2004-05-17 18:59
2004.08.01
Ошибка при вставке jpg





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский