|
|
|
IBX 19_19 вопрос с поддержкой оператора RETURNING
|
|||
|---|---|---|---|
|
#18+
Доброе время суток, такой вопрос: У меня DELPHI 10.2, ibx19,19, ни как не найду информацию о поддержке IBX оператора RETURNING. Я его хочу использовать в IBQuery (после вставки строки), ну как тут уже писали, предыдущие версии его не поддерживали. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2018, 13:45 |
|
||
|
IBX 19_19 вопрос с поддержкой оператора RETURNING
|
|||
|---|---|---|---|
|
#18+
ЕМНИП, такого предиката в InterBase нет. Следовательно, в IBX он без допиливания не поддерживается. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2018, 13:47 |
|
||
|
IBX 19_19 вопрос с поддержкой оператора RETURNING
|
|||
|---|---|---|---|
|
#18+
Любезный, Значит без внутренней процедуры не обойтись? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2018, 13:51 |
|
||
|
IBX 19_19 вопрос с поддержкой оператора RETURNING
|
|||
|---|---|---|---|
|
#18+
Konstantin-78, а тупо попробовать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2018, 13:58 |
|
||
|
IBX 19_19 вопрос с поддержкой оператора RETURNING
|
|||
|---|---|---|---|
|
#18+
Что-то мне кажется, что если тупо засунуть INSERT RETURNING в обычный TIBQuery или TIBDataset и сделать Open, то всё заработает само. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2018, 14:12 |
|
||
|
IBX 19_19 вопрос с поддержкой оператора RETURNING
|
|||
|---|---|---|---|
|
#18+
YuRockЧто-то мне кажется Наверное еще никого это простая мысль не посещала. :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2018, 14:14 |
|
||
|
IBX 19_19 вопрос с поддержкой оператора RETURNING
|
|||
|---|---|---|---|
|
#18+
YuRockЧто-то мне кажется, что если тупо засунуть INSERT RETURNING в обычный TIBQuery или TIBDataset и сделать Open, то всё заработает само. Прикинь, оно и работает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2018, 14:16 |
|
||
|
IBX 19_19 вопрос с поддержкой оператора RETURNING
|
|||
|---|---|---|---|
|
#18+
КотовасияПрикинь, оно и работает. Типа так?: Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. с ошибкой на " q := IBQuery1.ParamByName('ID').Value; " 'IBQuery1: List index out of bounds (0)'. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2018, 14:23 |
|
||
|
IBX 19_19 вопрос с поддержкой оператора RETURNING
|
|||
|---|---|---|---|
|
#18+
Konstantin-78Типа так?: Нет. Немного не так. Любые значения возвращаются через Fields. И запрос с RETURNING рассматривается не как select, а как execute procedure. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2018, 14:29 |
|
||
|
IBX 19_19 вопрос с поддержкой оператора RETURNING
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovНет. Немного не так. Любые значения возвращаются через Fields. И запрос с RETURNING рассматривается не как select, а как execute procedure. Вы имели в виду вот так? Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2018, 14:40 |
|
||
|
IBX 19_19 вопрос с поддержкой оператора RETURNING
|
|||
|---|---|---|---|
|
#18+
Konstantin-78Вы имели в виду вот так? За такой код я бы отрывал руки с запретом на профессию, но в целом таки да, как-то так. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2018, 14:45 |
|
||
|
IBX 19_19 вопрос с поддержкой оператора RETURNING
|
|||
|---|---|---|---|
|
#18+
Konstantin-78, только что проверил - работает: Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2018, 14:46 |
|
||
|
IBX 19_19 вопрос с поддержкой оператора RETURNING
|
|||
|---|---|---|---|
|
#18+
Konstantin-78, Запомни простую истину: никогда, накогда не используй CommitRetaining/RollbackRetaining. Иначе два варианта: 1. Ты сменишь профессию, а твоё поделие придется переделывать другому; 2. Тебе самому придется всё переделывать со временем. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2018, 14:54 |
|
||
|
IBX 19_19 вопрос с поддержкой оператора RETURNING
|
|||
|---|---|---|---|
|
#18+
YuRockKonstantin-78, Запомни простую истину: никогда, накогда не используй CommitRetaining/RollbackRetaining. Иначе два варианта: 1. Ты сменишь профессию, а твоё поделие придется переделывать другому; 2. Тебе самому придется всё переделывать со временем. Прямо вот так "никогда"? Может, тогда сразу расскажешь, как редактировать данные в ibx датасете, чтобы он не закрывался по каждому коммиту/роллбэку? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2018, 14:58 |
|
||
|
IBX 19_19 вопрос с поддержкой оператора RETURNING
|
|||
|---|---|---|---|
|
#18+
КотовасияYuRockKonstantin-78, Запомни простую истину: никогда, накогда не используй CommitRetaining/RollbackRetaining. Иначе два варианта: 1. Ты сменишь профессию, а твоё поделие придется переделывать другому; 2. Тебе самому придется всё переделывать со временем. Прямо вот так "никогда"? Может, тогда сразу расскажешь, как редактировать данные в ibx датасете, чтобы он не закрывался по каждому коммиту/роллбэку? Использовать датасеты, которые поддерживают 2 транзакции. Читающая длинная, пишущая - короткая. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2018, 15:26 |
|
||
|
IBX 19_19 вопрос с поддержкой оператора RETURNING
|
|||
|---|---|---|---|
|
#18+
КотовасияМожет, тогда сразу расскажешь, как редактировать данные в ibx датасете, чтобы он не закрывался по каждому коммиту/роллбэку? Ты имеешь ввиду - редактировать гриды "в гриде"? Зачем это вообще надо? Если уж надо - делаешь форму редактирования запись, после редактирования - стартуешь пишущую транзакцию, делаешь инсерт/апдейт, commit, refresh датасета, всё. Либо использовать датасеты с двумя транзакциями, как сказал ужа wadman. Но, имхо, это нужно чаще всего для редактирования гридов в гридах, что я считаю уродством. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2018, 15:38 |
|
||
|
IBX 19_19 вопрос с поддержкой оператора RETURNING
|
|||
|---|---|---|---|
|
#18+
А датасет должен быть открыт в read-only транзакции, ессно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2018, 15:39 |
|
||
|
IBX 19_19 вопрос с поддержкой оператора RETURNING
|
|||
|---|---|---|---|
|
#18+
wadmanКотовасияпропущено... Прямо вот так "никогда"? Может, тогда сразу расскажешь, как редактировать данные в ibx датасете, чтобы он не закрывался по каждому коммиту/роллбэку? Использовать датасеты, которые поддерживают 2 транзакции. Читающая длинная, пишущая - короткая. Т.е., не использовать датасеты ibx. Или использовать их после допиливания. А чем плоха длинная "пишущая" транзакция "стандартного" датасета ibx, которая 99,999% времени ничего не пишет, кроме короткого быстрого post с последующим немедленным CommitRetaining? Расскажи, пожалуйста. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2018, 15:40 |
|
||
|
IBX 19_19 вопрос с поддержкой оператора RETURNING
|
|||
|---|---|---|---|
|
#18+
YuRockА датасет должен быть открыт в read-only транзакции, ессно.Почему "естественно"? Ну вот если в этой транзакции данные не модифицируются - в чем проблема? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2018, 15:42 |
|
||
|
IBX 19_19 вопрос с поддержкой оператора RETURNING
|
|||
|---|---|---|---|
|
#18+
КотовасияYuRockА датасет должен быть открыт в read-only транзакции, ессно.Почему "естественно"? Ну вот если в этой транзакции данные не модифицируются - в чем проблема? В этой - не модифицируются. В других - вполне себе (у других пользователей). Получаешь накопление ненужных версий записи. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2018, 16:04 |
|
||
|
IBX 19_19 вопрос с поддержкой оператора RETURNING
|
|||
|---|---|---|---|
|
#18+
DarkMasterКотовасияпропущено... Почему "естественно"? Ну вот если в этой транзакции данные не модифицируются - в чем проблема? В этой - не модифицируются. В других - вполне себе (у других пользователей). Получаешь накопление ненужных версий записи. После CommitRetaining начнут копиться версии? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2018, 16:11 |
|
||
|
IBX 19_19 вопрос с поддержкой оператора RETURNING
|
|||
|---|---|---|---|
|
#18+
КотовасияDarkMasterпропущено... В этой - не модифицируются. В других - вполне себе (у других пользователей). Получаешь накопление ненужных версий записи. После CommitRetaining начнут копиться версии? Да, kdv пишет, что такое может случиться, в общем случае следует избегать Retaining, но для датасетов ibx вариантов нет, или допиливать или изменения в отдельной транзакции делать, ручками; или таки c Retainig - но учитывать ситуацию и понимать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2018, 16:44 |
|
||
|
IBX 19_19 вопрос с поддержкой оператора RETURNING
|
|||
|---|---|---|---|
|
#18+
Konstantin-78IBTransaction1.CommitRetaining; вот зачем такую стыдобу писать? Мало того, CommitRetaining, так он еще между открытием запроса и получением значения. Кто вас такому научил? Выполнил insert, получил данные, сделал commit, если надо. CommitRetaining для insert/update/delete ни к селу, ни к городу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2018, 17:36 |
|
||
|
IBX 19_19 вопрос с поддержкой оператора RETURNING
|
|||
|---|---|---|---|
|
#18+
Т.е., не использовать датасеты ibx. Или использовать их после допиливания. Со стандартными компонентами IBX приходится использовать in-memory-dataset (например, TRXMemoryData или что-нибудь посвежей) и его подключать к гриду. В этом случае: 1. Обеспечивается независимость от качества соединения с БД (данные не исчезнут при дисконнекте) 2. При добавлении / изменении / удалении записи не требуется переоткрывать весь датасет 3. По факту получается не очень много дополнительного кода. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2018, 17:49 |
|
||
|
|

start [/forum/topic.php?fid=58&msg=39711653&tid=2040328]: |
0ms |
get settings: |
6ms |
get forum list: |
13ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
174ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
47ms |
get tp. blocked users: |
1ms |
| others: | 202ms |
| total: | 456ms |

| 0 / 0 |
