![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
А где в компонентах DAO транзакции? [D7, Пробую Oracle]
gleb_b © (2004-04-26 14:42:00)Как их стартовать и подтверждать? Или мне чего то почитать надо?
gleb_b (2004-04-28 11:40:00) [1]
> roottim (28.04.04 10:56) [38]
Спасибо. А ещё мне хелп в ODAC больше понравился :=)
roottim (2004-04-28 10:56:00) [2]У меня крутиться на ODAC. вот чего нет в DOA дык это Net option
чем собственно ODAC мне и нравилтся.. я поменял немало версий ODAC, и минус их в том что от версии к версии наблюдались очередные баги( которые приходилось обходить), но вот с версии
4.10 более такого не наблюдаю (видомо был переходный период по крайней мере с версии 3.15 кажись, которая была стабильной).
DOA в этом смысле стабильный компонент.
Многие DOA товарищи утверждают что в ODAC лишняя туча компонентов, но это все вракии.. если они читали руководство.. то там написано что всякие квери, таблы и пр-яя БДЕ подобная наполненность, есть лиш комерческий ход, для привлечения перехода с БДЕ на ОДАК, ибо так им будет проще жить (и визард такой есть)
аВ действительности DOA и ODAC по возможностям РАВНЫ.. и блоки и все что угодно.. пожайлуста..
ничего не могу сказать про бесплантые NC OCI, к сожалению так их и непробовал...
так что для gleb_b - в чем удобнее в том и делайте
Sergey13 (2004-04-28 10:09:00) [3]2gleb_b (28.04.04 10:02) [36]
В огогоде бузина, а в Киеве дядька. 8-)
gleb_b (2004-04-28 10:02:00) [4]
> А ты ощущаешь разницу между словами Query и DataSet?
Ощущаю.
Видимо дело в том что ты не работал с ODAC. Их SmartQuery по сути своей и есть DataSet.
Sergey13 (2004-04-28 08:59:00) [5]2gleb_b (27.04.04 15:53) [29]
>Хотя лично мне пока больше ODAC нравится, у него в OraQuery есть возможность забить Select, Insert, Update, Refresh запросы, а у OracleDataSet (из DOA) нет.
А ты ощущаешь разницу между словами Query и DataSet? Это первое. Второе. В Query DOA (С ODAC не работал) можно забить чего угодно, хоть скрипт, хоть неименованный PL/SQL блок.
Курдль (2004-04-27 17:17:00) [6]
> Лучше использовать ODAC, а то непросто замучаетесь с пераметрами,
> а умрете.
"Это как?" - спросил мертвец. :(
Erik (2004-04-27 17:14:00) [7]Лучше использовать ODAC, а то непросто замучаетесь с пераметрами, а умрете. Для midas также предпочительней ODAC(мягко сказано). А принципы транзакций везде одинаковы, что IB, что ORACLE.
gleb_b (2004-04-27 16:39:00) [8]
> оракл имеет сейвпоинты но только в прямом направлении..
> тобиш кусками нельзя
Э - э - эх.
Вспоминается анекдот про наших лесорубов и финскую бензопелу.
roottim (2004-04-27 16:35:00) [9]2Что делать, если надо первый insert откатить, а второй закомитить?
неее. сумбур какой-то в вашей логике... смысл транзакции как раз в том:
либо пан либо пропал( плюс оракл имеет сейвпоинты но только в прямом направлении.. тобиш кусками нельзя)
Курдль (2004-04-27 15:58:00) [10]
> > Вопрос про Oracle и транзакции мне тоже интересен
>
> Кажется интересен он только нам с тобой :-(
Чего на них так свет клином сошелся? Не утомляйте мОзги!
Пишите OracleSession.ApplyUpdate([DataSet1, DataSet2, DataSet3 ...]); и будет вам счастье! Откроется транзакция без ваших усилий, отработаются все фиксации изменений всех датасетов, а если что-то внутри глюкнет - все автоматом откатится!
gleb_b (2004-04-27 15:53:00) [11]
> Вопрос про Oracle и транзакции мне тоже интересен
Кажется интересен он только нам с тобой :-(
> сравнение по DOA и ODAC
Статьи не нашёл, но общее впечатление, что народ больше DOA уважает. Хотя лично мне пока больше ODAC нравится, у него в OraQuery есть возможность забить Select, Insert, Update, Refresh запросы, а у OracleDataSet (из DOA) нет. А я к этому привык пользуя FIBDataSet.
Deniz (2004-04-27 13:06:00) [12]> gleb_b (27.04.04 11:39) [23]
>... Она для того чтобы читающие пользователи не блокировали
> пишущих...
А это откуда? Читатель, в FireBird/InterBase, никогдане блокирует никого, ни писателя ни читателя!
Просто в FIBPlus реализована возможность, на мой взгляд очень удобная. Для DataSet'а назначаются 2 транзакции. 1 - read only легкая не нагружающая сервер(не создается версии записей), и вторая пишущая(параметры могут быть разные + write). Так вот, когда юзер редактирует запись все изменения хранятся в локальном буфере и после того как был вызван Post автоматически стартует 2-транзакция посылает на сервер запрос на изменение и если все "хорошо" + AutoCommit=True, то завершается по Commit. Если произошли ошибки, то 2-транзакция откатывается.
Вопрос про Oracle и транзакции мне тоже интересен, и поэтому присоединяюсь к автору. Вот мой вопрос как продолжение gleb_b (27.04.04 11:26) [18]
1)insert into mytable1
(field1)
values (1) Тут же стартует транзакия 1.
Второй insert into mytable2
(field1)
values (2).
Что делать, если надо первый insert откатить, а второй закомитить?
>gleb_b
Недавно при поиске в rambler нашел небольшое сравнение(очень маленькая статья) по DOA и ODAC, но там сравнение кол-ва компонентов и некоторых возможностей, и маленький вывод. Если найдешь что получше кинь ссылку, или может кто знает из гуру Oracle.
gleb_b (2004-04-27 12:30:00) [13]Ну а насчёт компонентов какже? :-(
Чё посоветуете?
Sergey13 (2004-04-27 11:47:00) [14]2gleb_b (27.04.04 11:39) [23]
В Оракле читатель никогда не блокирует, если специально не указывать обратное.
gleb_b (2004-04-27 11:46:00) [15]
> Тогда я вычеркиваю и ИБ из списка потенциальных СУБД, с
> которыми можно работать! :)
А чёй то, это даёт лишнюю гибкость при работе. Или вы исповедуете принцип "блокировать всё, что можно и даже больше"?
Курдль (2004-04-27 11:43:00) [16]
> Она для того чтобы читающие пользователи не блокировали
> пишущих.
Тогда я вычеркиваю и ИБ из списка потенциальных СУБД, с которыми можно работать! :)
gleb_b (2004-04-27 11:39:00) [17]Последний вопрос по компонентам. Так что вам больше нравится, ODAC или DOA?
PS Курдль и Sergey13 спасибо за разьяснения.
> А в ИБ, значицца, есть? И зачем она? :( Вот век живи - век
> учись :(
> Плз, расскажите!
Она для того чтобы читающие пользователи не блокировали пишущих. Те одному Dataset'y можно сопоставить 2 транзакции. В одной читать, а в другой писать. В FibPlus это реализовано, а для стандартных компонентов надо апдейт скачать. Кажись так :-)
Sergey13 (2004-04-27 11:34:00) [18]2Курдль © (27.04.04 11:28) [19]
Сори, я кажется неправильно понял. 8-)
Sergey13 (2004-04-27 11:32:00) [19]2Курдль © (27.04.04 11:28) [19]
>Вторая транзакция не запускается.
С какого пива? Просто это все сработает (если сработает вообще 8-) в рамках одной транзакции.
gleb_b (2004-04-27 11:28:00) [20]
> Тут как раз savepoint катит.
> И еще, нет в оракле такого понятия как читающая тразакция
> в терминах ИБ, и ее соответственно не надо комитить/откатывать
> и при комит ничего не закрывается.
Теперь понял. Спасибо.