|
Как сохранить результат выполнения оператора DDL
|
|||
---|---|---|---|
#18+
Только начал осваивать DDL, поэтому не бейте больно. Вопрос - в следующем: Создаю хранимую процедуру, запускаю - работает. Переподключаюсь к базе данных - процедура пропадает. Делаю DROP TABLE - таблица пропадает. Переподключаюсь - вижу, что таблица осталась в базе. 1. Как удалить таблицу навсегда? 2. Можно ли сохранить навсегда хранимую процедуру? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.01.2016, 11:49 |
|
Как сохранить результат выполнения оператора DDL
|
|||
---|---|---|---|
#18+
Oleg77777, транзакцию надо подтверждать. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.01.2016, 11:53 |
|
Как сохранить результат выполнения оператора DDL
|
|||
---|---|---|---|
#18+
Hello, Симонов Денис! You wrote on 26 января 2016 г. 12:00:21: Симонов Денис> транзакцию надо подтверждать.обычно инструменты это делают сами. в том числе и isql при соответствующем режиме. поэтому хотелось бы узнать, чем именно пользуется ТС? Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
26.01.2016, 12:03 |
|
Как сохранить результат выполнения оператора DDL
|
|||
---|---|---|---|
#18+
Мимопроходящий, мой ХШ подсказывает что IBE. Но только делает это не в редакторе скриптов (в котором по умолчанию AUTODLL ON), а в окошке для выполнения SQL ... |
|||
:
Нравится:
Не нравится:
|
|||
26.01.2016, 12:10 |
|
Как сохранить результат выполнения оператора DDL
|
|||
---|---|---|---|
#18+
Мимопроходящий, Работаю с Embarcadero® C++Builder® XE, подключаюсь к firebird'овскому файлу. Делаю так: авторpFIBQuery2->SQL->Text = "DROP TABLE AAA"; ... |
|||
:
Нравится:
Не нравится:
|
|||
26.01.2016, 12:12 |
|
Как сохранить результат выполнения оператора DDL
|
|||
---|---|---|---|
#18+
Oleg77777, да ХШ подвёл, но лишь от части. Бегом читать про транзакции P.S. Что то мне кажется странным что ТСу потребовался DDL в приложении. Опять изменение метаданных "налету"? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.01.2016, 12:16 |
|
Как сохранить результат выполнения оператора DDL
|
|||
---|---|---|---|
#18+
Oleg77777, как тут уже сказали, транзакции надо явно завершать. У FIBPlus.pFIBTransaction по умолчанию DefaultAction (и TimeOutAction) стоит taRollback. То есть, когда закрывают БД, без явного commit/rollback активных в этот момент транзакций, транзакциям делается rollback. (в компонентах IBX не так, там по умолчанию taCommit). ... |
|||
:
Нравится:
Не нравится:
|
|||
26.01.2016, 12:33 |
|
Как сохранить результат выполнения оператора DDL
|
|||
---|---|---|---|
#18+
kdv, Спасибо, все понял. А то я тут пытался SQL-ем пулять, типа pFIBQuery2->SQL->Text = "SET TRANSACTION"; , а оно ругаецца, типа "Not permitted". Кстати, интересно, почему? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.01.2016, 13:06 |
|
Как сохранить результат выполнения оператора DDL
|
|||
---|---|---|---|
#18+
Oleg77777, потому что управление транзакциями в ИБ и ФБ производится с клиента. А set transaction - это хитрая команда. она либо препарсится gpre, и превращается в вызов ФБ API, либо выполняется в isql, и является такой же специфической, как и set term. Ты тут видишь set transaction? Ага... http://www.ibase.ru/firebird/doc/langref25rus.html единственное управление транзакциями на сервере - это savepoints и автономные транзакции. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.01.2016, 13:24 |
|
Как сохранить результат выполнения оператора DDL
|
|||
---|---|---|---|
#18+
Oleg77777, www. youtube.com/watch?v=9Th_14X6Ckg у меня на канале есть еще другие видео по транзакциям. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.01.2016, 13:26 |
|
Как сохранить результат выполнения оператора DDL
|
|||
---|---|---|---|
#18+
kdv, оно там есть. Просто в оглавлении не видно ... |
|||
:
Нравится:
Не нравится:
|
|||
26.01.2016, 13:27 |
|
Как сохранить результат выполнения оператора DDL
|
|||
---|---|---|---|
#18+
kdv, еще спасибо ... |
|||
:
Нравится:
Не нравится:
|
|||
26.01.2016, 13:40 |
|
Как сохранить результат выполнения оператора DDL
|
|||
---|---|---|---|
#18+
Oleg77777, Код: 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. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67.
... |
|||
:
Нравится:
Не нравится:
|
|||
26.01.2016, 13:45 |
|
Как сохранить результат выполнения оператора DDL
|
|||
---|---|---|---|
#18+
Симонов Денисоно там есть. Просто в оглавлении не видно да, склероз. Просто обычный старт - это вызовы функций isc_start_transaction или isc_start_multiple, которые возвращают хэндл транзакции, с которым дальше можно работать. А выполняя SET TRANSACTION как "DSQL" мы не можем с сервера получить хэндл этой транзакции. Якобы, надо тогда использовать isc_dsql_execute_immediate. Но вернет-ли он isc_tr_handle*, я не знаю. Короче, гемор. В ESQL, SET TRANSACTION должен превращаться в соотв вызовы isc_start_transaction или isc_start_multiple. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.01.2016, 13:47 |
|
Как сохранить результат выполнения оператора DDL
|
|||
---|---|---|---|
#18+
DBConstructor, Код: plaintext 1.
не надо так. вообще это херня какая-то. Допустим, так можно у фиплюса, но какой уровень изолированности у этой транзакции получается? Короче, брак в коде. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.01.2016, 13:49 |
|
Как сохранить результат выполнения оператора DDL
|
|||
---|---|---|---|
#18+
kdv, Код: plaintext 1. 2. 3. 4. 5.
... |
|||
:
Нравится:
Не нравится:
|
|||
26.01.2016, 13:50 |
|
Как сохранить результат выполнения оператора DDL
|
|||
---|---|---|---|
#18+
DBConstructor, да пофиг. не надо так писать (по крайней мере, использовать прекрасные имена write_mode_transaction, которые почти ни о чем не говорят). ... |
|||
:
Нравится:
Не нравится:
|
|||
26.01.2016, 13:54 |
|
Как сохранить результат выполнения оператора DDL
|
|||
---|---|---|---|
#18+
DBConstructor, а зачем ты для запроса Код: plaintext 1. 2. 3. 4. 5.
write транзакцию запускаешь? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.01.2016, 13:55 |
|
Как сохранить результат выполнения оператора DDL
|
|||
---|---|---|---|
#18+
DBConstructor Код: plaintext 1. 2.
Сам понял, что написал ? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.01.2016, 13:56 |
|
Как сохранить результат выполнения оператора DDL
|
|||
---|---|---|---|
#18+
hvlad, вроде, уже не первый раз (хотя может у меня склероз). ... |
|||
:
Нравится:
Не нравится:
|
|||
26.01.2016, 13:58 |
|
Как сохранить результат выполнения оператора DDL
|
|||
---|---|---|---|
#18+
hvlad, артефакт копипасты. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.01.2016, 13:59 |
|
Как сохранить результат выполнения оператора DDL
|
|||
---|---|---|---|
#18+
kdv, у тебя нет склероза. Как-то уже копипастил похожим образом - менял read_committed на concurrency, а rec_version/no_rec_version забывал удалять. Понятно, что указание no_rec_version не имеет смысла при уровне изолированности snapshot, но и ошибкой, влияющей на работу программы, это не назовешь. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.01.2016, 14:09 |
|
Как сохранить результат выполнения оператора DDL
|
|||
---|---|---|---|
#18+
гм... а разве в 2.5 не делали чтобы сервер ругался на несовместимые параметры транзакции? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.01.2016, 14:19 |
|
Как сохранить результат выполнения оператора DDL
|
|||
---|---|---|---|
#18+
Симонов Денис, а какая разница? Считаю, что во многих случаях, наличие двух транзакций (одна на чтение, другая на запись), да еще и с разными уровнями изолированности - это devil evil. Особенно, если в рамках одной транзакции приходится не только изменять, но и читать измененные записи. В таком варианте, транзакция на чтение - сущность без надобности. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.01.2016, 14:21 |
|
Как сохранить результат выполнения оператора DDL
|
|||
---|---|---|---|
#18+
Симонов Денис, ИМХО, здесь нет несовместимости. Всего лишь бессмысленное указание одного из параметров транзакции, не вступающего в конфликт с уровнем изолированности. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.01.2016, 14:23 |
|
Как сохранить результат выполнения оператора DDL
|
|||
---|---|---|---|
#18+
Небрежность не проявляется в чём-то одном. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.01.2016, 14:24 |
|
Как сохранить результат выполнения оператора DDL
|
|||
---|---|---|---|
#18+
DBConstructorСимонов Денис, а какая разница? Считаю, что во многих случаях, наличие двух транзакций (одна на чтение, другая на запись), да еще и с разными уровнями изолированности - это devil evil. Особенно, если в рамках одной транзакции приходится не только изменять, но и читать измененные записи. В таком варианте, транзакция на чтение - сущность без надобности. ну если ты в куске Код: plaintext 1. 2. 3. 4. 5. 6. 7.
изменения делаешь тогда согласен ... |
|||
:
Нравится:
Не нравится:
|
|||
26.01.2016, 14:27 |
|
Как сохранить результат выполнения оператора DDL
|
|||
---|---|---|---|
#18+
WildSery, небрежность, это когда пренебрегают чтением стандартов и спецификаций, но, при этом, считают себя вправе рассуждать и спорить на предмет оных. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.01.2016, 14:28 |
|
Как сохранить результат выполнения оператора DDL
|
|||
---|---|---|---|
#18+
Hello, Dbconstructor! You wrote on 26 января 2016 г. 14:27:20: Dbconstructor> транзакция на чтение - сущность без надобности. Сочинял сапожник песню целый день, Их сегодня сочиняют все кому не лень. Он за это дело взялся в первый раз, Удивить хотел наверно нас... припев Только не надо перебивать, Только не надо переживать... (с) Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
26.01.2016, 14:28 |
|
Как сохранить результат выполнения оператора DDL
|
|||
---|---|---|---|
#18+
Симонов Денис, приведенный код - пример. По сути, не важно где ты делаешь изменения. Можно и до выборки что-то поменять отдельным запросом, который через ХП и триггеры изменить кучу других данных, которые ты затем будешь читать в следующем запросе, в блоке while и всё это в рамках одной транзакции. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.01.2016, 14:31 |
|
Как сохранить результат выполнения оператора DDL
|
|||
---|---|---|---|
#18+
МимопроходящийСочинял сапожник песню целый день, Их сегодня сочиняют все кому не лень. Давай ты не будешь выдергивать мои слова из контекста без ключевых фраз и передергивать? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.01.2016, 14:32 |
|
Как сохранить результат выполнения оператора DDL
|
|||
---|---|---|---|
#18+
Hello, Dbconstructor! You wrote on 26 января 2016 г. 14:36:02: Dbconstructor> Давай ты не будешь выдергивать мои слова из контекста без ключевых фраз и передергивать?усохни, промокашка. (с) Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
26.01.2016, 14:35 |
|
Как сохранить результат выполнения оператора DDL
|
|||
---|---|---|---|
#18+
Мимопроходящийусохни, промокашка. (с) Сходи, опорожнись! А то, похоже, у тебя в организме переизбыток г-на. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.01.2016, 14:38 |
|
Как сохранить результат выполнения оператора DDL
|
|||
---|---|---|---|
#18+
DBConstructorСимонов Денис, приведенный код - пример. По сути, не важно где ты делаешь изменения. Можно и до выборки что-то поменять отдельным запросом, который через ХП и триггеры изменить кучу других данных, которые ты затем будешь читать в следующем запросе, в блоке while и всё это в рамках одной транзакции. у тебя в примере пропущенных кусков кода больше нет. Есть конечно ещё кусок пропущенного кода в обработке исключений, но писать там что-то в базу как раз маразм. Только не задавай вопросов почему. Сам догадаешься. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.01.2016, 14:52 |
|
Как сохранить результат выполнения оператора DDL
|
|||
---|---|---|---|
#18+
*тут плакат "Ты уже перестал передёргивать?!" ... |
|||
:
Нравится:
Не нравится:
|
|||
26.01.2016, 14:55 |
|
Как сохранить результат выполнения оператора DDL
|
|||
---|---|---|---|
#18+
Симонов Денис, причем тут пропущенные куски кода? Это пример работы через компоненты FIBPlus без излишеств. Ничто не мешает после старта транзакции и перед запросом на чтение вставить запрос на запись. И в данном случае, как ты понимаешь, отдельная читающая транзакция ни к чему, так как мы не увидим в ней каких-либо изменений, пока не сделаем commit для пишущей транзакции, в которой нам эти изменения доступны. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.01.2016, 15:00 |
|
|
start [/forum/topic.php?all=1&fid=40&tid=1562376]: |
0ms |
get settings: |
8ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
62ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
61ms |
get tp. blocked users: |
2ms |
others: | 266ms |
total: | 433ms |
0 / 0 |