|
Не редактируются записи
|
|||
---|---|---|---|
#18+
Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23.
Вношу какие-нибудь записи в таблицу, коммит, выполняю запрос execute procedure Test15_Proc, коммит, после этого записи в таблице TEST15 перестают редактироваться в UI IBExpert'а (после коммита возвращаются старые значения полей). Update-запросом данные изменить по-прежнему можно. Это баг IBE, или я что-то делаю не так? ... |
|||
:
Нравится:
Не нравится:
|
|||
20.11.2014, 11:07 |
|
Не редактируются записи
|
|||
---|---|---|---|
#18+
RWolf 1. Вношу какие-нибудь записи в таблицу, 2. коммит, 3. выполняю запрос execute procedure Test15_Proc, 4. коммит, 5.после этого записи в таблице TEST15 перестают редактироваться в UI IBExpert'а (после коммита возвращаются старые значения полей). А попробуй после шага 2 закрыть окно с табличкой ... |
|||
:
Нравится:
Не нравится:
|
|||
20.11.2014, 13:06 |
|
Не редактируются записи
|
|||
---|---|---|---|
#18+
RWolfили я что-то делаю не так? Перед пунктом 5 не достаёшь новые данные в гридку (ну я так думаю) ... |
|||
:
Нравится:
Не нравится:
|
|||
20.11.2014, 13:08 |
|
Не редактируются записи
|
|||
---|---|---|---|
#18+
m7m, IBE при коммите из грида начинает новую транзакцию и вытаскивает данные в грид заново. Но это не суть, можно просто переоткрыть грид, ничего не меняется. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.11.2014, 13:19 |
|
Не редактируются записи
|
|||
---|---|---|---|
#18+
m7m, даже реконнект к БД не помогает. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.11.2014, 13:23 |
|
Не редактируются записи
|
|||
---|---|---|---|
#18+
Подключил в приложении грид к датасету FIBPlus — записи редактируются, как положено; более того, после коммита из приложения редактирование включается и в гриде IBE. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.11.2014, 14:05 |
|
Не редактируются записи
|
|||
---|---|---|---|
#18+
RWolfm7m, даже реконнект к БД не помогает. В смысле в гридке не видны новые данные???? ... |
|||
:
Нравится:
Не нравится:
|
|||
20.11.2014, 14:22 |
|
Не редактируются записи
|
|||
---|---|---|---|
#18+
m7m, результаты редактирования не сохраняются, т.е. после коммита в грид возвращаются предыдущие данные. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.11.2014, 14:41 |
|
Не редактируются записи
|
|||
---|---|---|---|
#18+
RWolfрезультаты редактирования не сохраняются, т.е. после коммита в грид возвращаются предыдущие данные. Ну в общем-то подтверждаю, у меня воспроизводится Кто виноват что без ПК такое поведение, не знаю ... |
|||
:
Нравится:
Не нравится:
|
|||
20.11.2014, 15:55 |
|
Не редактируются записи
|
|||
---|---|---|---|
#18+
m7m, Чтобы удалять/апдейтить в сетке нужен update/delete скрипт с WHERE ID=:OLD_ID. ID берут из PK. Тут PK нет, поэтому в сетке можно безопасно редактировать только через RDB$DB_KEY (что уже хак). Иначе любой неосторожный DELETE/UPDATE затрагивает не только выделенную запись, но и еще кучку, которым вдруг посчастливилось попасть в WHERE. Вставьте в таблицу пяток записей с одинаковым ID... Так что это скорее не бага, а попытка защитить разраба от его же шаловливых ручек. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.11.2014, 17:15 |
|
Не редактируются записи
|
|||
---|---|---|---|
#18+
DarkMaster... Насколько помню копания в IBX (другого не знаю) 1 если есть ПК то строится update/delete с WHERE fld_PK=:OLD_fld_PK 2 если есть уникальный индекс то строится update/delete с WHERE fld_UN_1=:OLD_fld__UN_1 and ... and fld_UN_k=:OLD_fld__UN_k (все поля этого индекса) 3 иначе строится update/delete с WHERE fld_1=:OLD_fld_1 and ... and fld_n=:OLD_fld_n (все поля таблицы) насчет 2-го не уверен (возможно выдаю желаемое за действительное) по поводу 3-го не помню насколько там обрабатываются NULL и таки да в 3-м случае DarkMasterИначе любой неосторожный DELETE/UPDATE затрагивает не только выделенную запись, но и еще кучку, которым вдруг посчастливилось попасть в WHERE и это нормальное поведение и совершенно излишне "защищать разраба от его же шаловливых ручек" ... |
|||
:
Нравится:
Не нравится:
|
|||
20.11.2014, 17:37 |
|
Не редактируются записи
|
|||
---|---|---|---|
#18+
m7m, А вот фиг его знает, что там генерится.Да и компонент вагон и маленькая тележка (насколько я знаю/догадываюсь - внутри ИБЭ сидит модифицированный FIB+)... Как по мне - так лучше "не пущать", чем надеятся на ИИ. К тому же в примере мы видим отсутствие PK/UNIQUE. Т.е. возможно наличие n-го количества одинаковых записей и следовательно массовых айдейтов/делитов. В этом случае единственным решением (без усложнения логики) считаю использование RDB$DB_KEY, в противном случае будет неадекватная реакция - "оно у меня удалило 100500 записей, а я хотел одну". ... |
|||
:
Нравится:
Не нравится:
|
|||
20.11.2014, 18:32 |
|
Не редактируются записи
|
|||
---|---|---|---|
#18+
m7m, Если это нормальное поведение - редактируйте через sql запросы в редакторе. Я же ожидаю, что изменения применятся только для текущей записи в сетке, а не к еще каким-то (вдруг они мне нужны?). Т.е. я в таблицу заношу: 1 2 2 3 2 3 2 4 А теперь попробуй в сетке заменить одну из 2-3 на 2-5. Чтобы в таблице было 1-2,2-3,2-4,2-5. Будут лишние телодвижения. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.11.2014, 18:40 |
|
Не редактируются записи
|
|||
---|---|---|---|
#18+
DarkMasterm7m, Если это нормальное поведение - редактируйте через sql запросы в редакторе. Я же ожидаю, что изменения применятся только для текущей записи в сетке, а не к еще каким-то (вдруг они мне нужны?). Т.е. я в таблицу заношу: 1 2 2 3 2 3 2 4 А теперь попробуй в сетке заменить одну из 2-3 на 2-5. Чтобы в таблице было 1-2,2-3,2-4,2-5. Будут лишние телодвижения. пофиг, откуда и через что редактируется, если запись нельзя однозначно идентифицировать А её нельзя однозначно идентифицировать не привлекая особенности реализации движка БД ... |
|||
:
Нравится:
Не нравится:
|
|||
20.11.2014, 19:28 |
|
Не редактируются записи
|
|||
---|---|---|---|
#18+
Возможно, дело в миллисекундах, которые не попадают в апдейт. Лень проверять... ... |
|||
:
Нравится:
Не нравится:
|
|||
24.11.2014, 11:49 |
|
Не редактируются записи
|
|||
---|---|---|---|
#18+
DarkMaster, верно. редактирование таблицы без ПК (или хотя бы UNIQUE) в гриде - ересь. Попытка тут использовать rdb$db_key - притягивание за уши специфики сервера (т.е. физической адресации записей, что противоречит правилам РСУБД). Допустим, rdb$db_key вообще нет. Поэтому редактируя "текущую запись в гриде" отредактируется от 1 до N таких же записей. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.11.2014, 06:01 |
|
Не редактируются записи
|
|||
---|---|---|---|
#18+
kdvDarkMaster, верно. редактирование таблицы без ПК (или хотя бы UNIQUE) в гриде - ересь. Попытка тут использовать rdb$db_key - притягивание за уши специфики сервера (т.е. физической адресации записей, что противоречит правилам РСУБД). Допустим, rdb$db_key вообще нет. Поэтому редактируя "текущую запись в гриде" отредактируется от 1 до N таких же записей. Дополню, Это относится вообще к редактированию (удалению) , а не только к редактированию (удалению) в гридке, ... |
|||
:
Нравится:
Не нравится:
|
|||
30.11.2014, 08:19 |
|
|
start [/forum/topic.php?fid=42&fpage=31&tid=1599601]: |
0ms |
get settings: |
8ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
40ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
46ms |
get tp. blocked users: |
1ms |
others: | 309ms |
total: | 435ms |
0 / 0 |