|
|
|
как осуществляется транзакция если обмен через ODBC
|
|||
|---|---|---|---|
|
#18+
у меня при создании таблицы установлены параметры: MAXTRANS = 255 Вопрос 1 если я выдаю серию команду INSERT через ОДиБиСи то как это рассматривать как одна транзакция или как серия транзакций? Вопос 2 если я выдаю INSERT или UPDATE в 100 раз больше, чем указано в MAXTRANS , но не ояормляя в виде одной транзакции то что происходит? а) оформляется новая транзакция? или б) происходит все в рамках одного соединения? с) команды INSERT или UPDATE делятся на блоки по 255 шт. и выполняются разными транзакциями.. или что иное? какой выход: ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.06.2003, 16:47:01 |
|
||
|
как осуществляется транзакция если обмен через ODBC
|
|||
|---|---|---|---|
|
#18+
Не совсем понятно, что значит оформление транзакций. Транзакция заканчивается при выполении commit или rollback. Воможно имеется ввиду что у твоей тулзы стоит autocommit, тогда вроде каждый DML коммитится автоматически. Если хочешь сам определять когда коммитить, выключи autocommit. Параметр MAXTRANS на доступ через ODBC не влияет, ODBC по идее о нем даже не знает. Это параметр Оракл для data block, ограничивающий количество одновременных транзакций для блока, не для таблицы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.06.2003, 18:17:11 |
|
||
|
как осуществляется транзакция если обмен через ODBC
|
|||
|---|---|---|---|
|
#18+
> если я выдаю серию команду INSERT через ОДиБиСи > то как это рассматривать как одна транзакция или как серия транзакций Tranzactia - ncinaetsea s DML instructii(insert, update, merge,...) i zacancivaetsea ispolizuia 'commit' ili DDL instructiu. Vopros: 'то как это рассматривать как одна транзакция или как серия транзакций' -> necorecten ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.06.2003, 18:24:58 |
|
||
|
как осуществляется транзакция если обмен через ODBC
|
|||
|---|---|---|---|
|
#18+
By default, ODBC rabotaet s auto commit, t.e.posle DML predlogeniya -> execute statement-> commit. MS ODBC by default esche delaet i select... for update / insert ... as update. A ty kak rabotaesh? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.06.2003, 10:24:50 |
|
||
|
как осуществляется транзакция если обмен через ODBC
|
|||
|---|---|---|---|
|
#18+
Violina а смогу я выключить autocommit через ОДиБиСи или это делается как-то вручную? и как это выключить? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.06.2003, 10:28:57 |
|
||
|
как осуществляется транзакция если обмен через ODBC
|
|||
|---|---|---|---|
|
#18+
Oracle X-pert у меня работает по умолчанию... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.06.2003, 10:30:21 |
|
||
|
как осуществляется транзакция если обмен через ODBC
|
|||
|---|---|---|---|
|
#18+
Не буду ориентироваться на конкретны драйвер - дам теорию :) 1. Надо вызвать SQLGetInfo со значением fInfoType=SQL_TXN_CAPABLE 2. Узнаем поддерживается ли транзакции SQLGetInfo вернет одно из значений SQL_TC_NONE SQL_TC_DML SQL_TC_DLL_COMMIT SQL_TC_DDL_IGNORE SQL_TX_ALL 3. Через SQLSetConnectOption - установим ручное завершение транзакций (если они конечно поддерживаются) SQLSetConnectOption(hdbc,SQL_AUTOCOMMIT,SQL_AUTOCOMMIT_OFF) 4. Далее в ручную комитим или ролбачим наши действия. SQLTransact(henv,hdbc,SQL_COMMIT) или SQLTransact(henv,hdbc,SQL_ROLLBACK) ЗЫ: При работе с транзакциями надо еще помнить об уровнях изоляции возврат SQLGetInfo с параметром SQL_TXN_ISOLATION_OPTION SQL_TXN_READ_UNCOMMITTED SQL_TXN_READ_COMMITED SQL_TXN_REPEATABLE_READ SQL_TXN_SERIALIZABLE SQL_TXN_VERSIONING ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.06.2003, 11:20:51 |
|
||
|
как осуществляется транзакция если обмен через ODBC
|
|||
|---|---|---|---|
|
#18+
to akalend Зависит от тулзы, которую ты используешь. Скорее всего можно. Я пока что кроме SQL Plus ничего не использую, так что сказать точно не могу. Задавай вопрос в форуме, назвав тулзу которую используешь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.06.2003, 11:36:17 |
|
||
|
как осуществляется транзакция если обмен через ODBC
|
|||
|---|---|---|---|
|
#18+
Зависит от тулзы , которую ты используешь 1) что такое тулза? 2) я использую SQL+ и EnterpriceManager ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.06.2003, 12:28:58 |
|
||
|
как осуществляется транзакция если обмен через ODBC
|
|||
|---|---|---|---|
|
#18+
Надо вызвать SQLGetInfo со значением fInfoType=SQL_TXN_CAPABLE Как его вызвать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.06.2003, 12:33:33 |
|
||
|
как осуществляется транзакция если обмен через ODBC
|
|||
|---|---|---|---|
|
#18+
Тулза - стредство разработки/среда в которой ты пишешь программу (Delphi .NET etc). Например olk приводит тебе пример как это можно сделать в некой среде разработки, правда я так и не определила какой:-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.06.2003, 12:44:02 |
|
||
|
как осуществляется транзакция если обмен через ODBC
|
|||
|---|---|---|---|
|
#18+
Среда разработки VC++ 6 версия работаю через ODBC драйвер от Oracle драйвер от Microsoft под Oracle не работает ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.06.2003, 13:28:43 |
|
||
|
как осуществляется транзакция если обмен через ODBC
|
|||
|---|---|---|---|
|
#18+
Ну вот, тогда правильный вопрос будет Как выключить autocommit для DML (Среда VC++ 6, ODBC driver от Oracle)? Кто знает наверняка подскажет! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.06.2003, 13:35:16 |
|
||
|
как осуществляется транзакция если обмен через ODBC
|
|||
|---|---|---|---|
|
#18+
Ok. Вопрос 1 Transaction per connect. T.k. all by default, to.. transaction finished after "execute" statement. Вопос 2 Esli use pool, to: команды INSERT или UPDATE делятся на connections по 255 шт. и выполняются разными транзакциями ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.06.2003, 13:51:36 |
|
||
|
как осуществляется транзакция если обмен через ODBC
|
|||
|---|---|---|---|
|
#18+
как сделать лучше, мне необходимо ввести (выполнить команду INSERT ) 500 000 записей при стандартном подходе - это занимает 40 мин... - это очень много... могу я использовать какие-то настройки Oracle или как-то использовать кэш или транзакцию, чтоб сократить время работы.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.06.2003, 14:35:12 |
|
||
|
как осуществляется транзакция если обмен через ODBC
|
|||
|---|---|---|---|
|
#18+
to Violina: это чистый С :) я его и приводил что-бы не заморачиваться на канкретную реализацию ... например в VC это будет примерно так ... Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.06.2003, 14:43:40 |
|
||
|
|

start [/forum/topic.php?fid=52&msg=32184115&tid=1989975]: |
0ms |
get settings: |
6ms |
get forum list: |
9ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
194ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
33ms |
get tp. blocked users: |
1ms |
| others: | 189ms |
| total: | 445ms |

| 0 / 0 |
