|
|
|
Error 3
|
|||
|---|---|---|---|
|
#18+
1) В таблице есть строка, при редактировании ключевых реквизитов которой выдаётся сообщение об ошибке "Error 3 Row change between retrieve and update. No change made to database DELETE FROM...". При редактировании прочих реквизитов - "Error 3 Row change between retrieve and update. No change made to database UPDATE FROM...". Пробовал менять флаги состояния редактирования. При установке флага в NewModified! выдаётся сообщение, что primary key не уникален. Удалить строку также не удаётся. Экспортировал эту строку в текстовый файл. Взял старую базу данных (до ввода этой строки). Импортировал строку. Строка сохраняется, но редактировать и удалить её всё равно нельзя (Err 3). Строку пытаюсь удалить/редактировать и через приложение ( идёт Update только одного dw) и через PB -> Database -> Datamanipulation. Понимаю, что чего-то не понимаю. Кто знает, как решить проблему, помогите, пожалуйста! 2) Искал в форуме вопросы, связанные с ошибкой №3. Нашёл несколько обсуждений. Называют ошибку и "знаменитой" и "пресловутой". При этом обсуждаются: параллельность ввода информации пользователями, параметры в хранимых процедурах, настройки DataWindow, разделение транзакций... Методы лечения ошибки самые разные, включая, например(цитирую Vovik@PB): "Описанная выше ошибка пропала при выставлении в настройках ODBC драйвера галочки напротив пункта Return matching rows (которая по умолчанию девственно чиста). Интересно будут ли побочные эффекты?" (конец цитаты). Может быть собрать весь накопленный опыт борьбы в единое целое и поместить в FAQ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.09.2004, 18:45 |
|
||
|
Error 3
|
|||
|---|---|---|---|
|
#18+
В PowerBuilder для DataWindow SQL-код при выполнении Update() генерируется автоматически. Его можно вытянуть в событии SqlPreview. И дальше - анализировать. Вариантов ошибок, действительно, множество - от неверной установки Update Properties в DataWindow до проблем с параллельной работой пользователей. Полезно также без DataWindow, а может быть и без PowerBuilder, поработать с выбранной СУБД ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.09.2004, 19:33 |
|
||
|
Error 3
|
|||
|---|---|---|---|
|
#18+
Скажите пожалуйста, нет ли на изменяемой таблице триггеров, в результате работы которых происходят какие-либо изменения с редактируемой записью? Какая СУБД? Изменять установку в окне Specify Update Properties->Where Clause For Update/Delete с умолчения на Key Columns пробовали? А Key Modification на Use Update? PS:Редактирование ключа, IMHO, не самая лучшая практика... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.09.2004, 19:48 |
|
||
|
Error 3
|
|||
|---|---|---|---|
|
#18+
PL99Скажите пожалуйста, нет ли на изменяемой таблице триггеров, в результате работы которых происходят какие-либо изменения с редактируемой записью? Какая СУБД? Изменять установку в окне Specify Update Properties->Where Clause For Update/Delete с умолчения на Key Columns пробовали? А Key Modification на Use Update? PS:Редактирование ключа, IMHO, не самая лучшая практика... Спасибо. Кажется лечится, если в настройках DW выставить Key Column + Use Update. Но, через PB -> Database -> Datamanipulation ни удалить, ни отредактировать всё равно не получается. Почему? Sybase SQL Anywhere Database Engine 5.5.04 + PB6 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.09.2004, 20:50 |
|
||
|
Error 3
|
|||
|---|---|---|---|
|
#18+
Спасибо PL99 ещё раз. Но вопросы остаются. Кратко излагаю историю: Работает приложение. База данных на сервере (Sybase SQL Anywhere 5.0 (или 5.5?) для NT). На клиенте в таблицу вводится информация. При вводе одной из записей возникла ошибка №3. Беру старую базу данных (без этой записи). Локально, на своём компьютере, из-под PB начинаю ошибку ковырять. Импортирую эту запись из текстового файла средствами PB (вставляю программно из Excel, ввожу вручную). Запись сохраняется, но редактируется/удаляется только если в Update properties DW выставить Key Columns + Use Update. ПОЧЕМУ в таблице, состоящей из нескольких записей, все записи можно редактировать/удалять при выставленных Update Properties DW "Key and Updateable Columns + Use Update", а одну можно только если выставить "Key Columns + Use Update"? ПОЧЕМУ эту же запись нельзя удалить/редактировать из PB->Database->Datamanipulation? Почему? Ну, допустим, сбойнуло что-то при сохранении именно этой записи. Может быть обмен данными с сервером как-то криво прошёл. В ISQL запись удаляется на ура, СУБД на всё плевать. Начинаются подозрения, что PB что-то куда-то пишет, а потом читает. Но ведь я беру старую базу данных и добавляю эту строку на другом компьютере! Прямо мистика какая-то! Но, чудес в данном случае быть не может. Либо что-то не так делаю я и этого не замечаю, либо я чего-то не знаю(не понимаю). PS. Если не поможет никто, буду всем желающим за деньги фокус с неудаляемой строкой показывать! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.09.2004, 16:18 |
|
||
|
Error 3
|
|||
|---|---|---|---|
|
#18+
Зернов Павел ПОЧЕМУ эту же запись нельзя удалить/редактировать из PB->Database->Datamanipulation? Чтобы редактировать или удалять записи, PowerBuilder должен автоматически сформировать операторы для изменения таблицы. Наверное, у Вас нет уникального ключа для таблицы. В этом случае PowerBuilder "не знает", что поставить во фразу Where, поэтому "не разрешает" редактирование записей таблицы. Это не особенность именно PowerBuilder. Та же ситуация возникает и при использовании других средств. Например, для работы с Oracle многие используют PL/SQL Developer. Так вот, если в нем вызвать таблицу на редактирование, то к списку полей таблицы автоматически добавляется поле Rowid (уникальный адрес записи) - в этом случае PL/SQL Developer во фразу Where вставит то-то типа Where RowId = CharToRowid( :Значение ) PowerBuilder не привязан к какой-то конкретной СУБД, поэтому "ОН" так поступить не может. Зернов ПавелПОЧЕМУ в таблице, состоящей из нескольких записей, все записи можно редактировать/удалять при выставленных Update Properties DW "Key and Updateable Columns + Use Update", а одну можно только если выставить "Key Columns + Use Update"? Update Properties для того нужны PowerBuilder, чтобы опять-таки автоматически сформировать операторы для изменения таблицы. Надо не суетиться, а спокойно разобраться, какой оператор генерируется при выставлении разных опций. Никаких чудес здесь нет. Более конкретно на основе имеющейся информации ответить сложно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.09.2004, 20:21 |
|
||
|
|

start [/forum/topic.php?fid=15&fpage=99&tid=1338879]: |
0ms |
get settings: |
8ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
57ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
45ms |
get tp. blocked users: |
2ms |
| others: | 13ms |
| total: | 161ms |

| 0 / 0 |

Извините, этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
... ля, ля, ля ...