|
|
|
Ошибка при редактировании данных в форме
|
|||
|---|---|---|---|
|
#18+
SQL-server 2000 + Access 2000, все сервис-паки. Применила уже неоднократно мной использованный способ создания АДО - рекордсета как источника подчиненной формы через вызов хранимой процедуры. Процедура достает список по накладной и довешивает к нему справочные тексты и параметры. Назначена Unique Table как всегда, но одно поле (количество штук по накладной) редактировать не удается. Ясно, что такая конструкция не позволяет изменять значения ключевого поля, но почему выдает ошибку попытка изменить значение поля, ни с чем не связанного? При этом новое значение сохраняется, но дальнейшее продолжение работы невозможно, форму приходится закрывать через десяток сообщений об ошибке, а если этот рекордсет попытаться редактировать без формы через процедуру, сообщения другие, но ошибка все равно возникает. Я не могу разобраться, в чем дело, помогите, пожалуйста. Остальные поля, кроме проблемного и ключевого, редактируются нормально. Не умею вставить здесь картинку в сообщение. Если кто-нибудь объяснит, как это делается, буду очень признательна. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2004, 17:38:27 |
|
||
|
Ошибка при редактировании данных в форме
|
|||
|---|---|---|---|
|
#18+
про картинку картинку можно приложить как файл. про ошибку. без запроса (текста хп) можно гадать только. (с выражением лица) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2004, 17:46:41 |
|
||
|
Ошибка при редактировании данных в форме
|
|||
|---|---|---|---|
|
#18+
Код: 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2004, 17:58:34 |
|
||
|
Ошибка при редактировании данных в форме
|
|||
|---|---|---|---|
|
#18+
авторError uploading file.There is not enough space on the disk. Картинка не прикладывается. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2004, 17:59:29 |
|
||
|
Ошибка при редактировании данных в форме
|
|||
|---|---|---|---|
|
#18+
что-то я тут "количество штук по накладной" не опознал. Как его зовут? (с выражением лица) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2004, 18:04:47 |
|
||
|
Ошибка при редактировании данных в форме
|
|||
|---|---|---|---|
|
#18+
Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2004, 18:06:52 |
|
||
|
Ошибка при редактировании данных в форме
|
|||
|---|---|---|---|
|
#18+
М.б. потому проблема, что Quantity упоминается в вычисляемых полях? Так Price тоже участвует в вычислениях, а с ним проблемы нет... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2004, 18:10:25 |
|
||
|
Ошибка при редактировании данных в форме
|
|||
|---|---|---|---|
|
#18+
вопросы - кто объявлен Unique Table (dbo.InvoicesComposition.InvoicePosition ?) - как зовут поле "количество штук по накладной" - какое определение для этого поля (не является ли оно вычислимым полем?) советы 1) для начала бы выкинул выводимую таблицу Код: plaintext 1. 2. 3. 4. 5. 6. и ее условие отбора поместил в условие отбора запроса. 2) в расчете на то, что Unique Table это dbo.InvoiceComposition и "количество штук по накладной" - обычное поле, не пересекающееся по имени с прочими полями отбора, - переписал бы запрос так Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. (с выражением лица) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2004, 18:26:55 |
|
||
|
Ошибка при редактировании данных в форме
|
|||
|---|---|---|---|
|
#18+
Victosha вопросы - кто объявлен Unique Table (dbo.InvoicesComposition.InvoicePosition ?) dbo.InvoicesComposition Victosha - как зовут поле "количество штук по накладной" есс-но, Quantity, извиняюсь за недомыслие. Victosha - какое определение для этого поля (не является ли оно вычислимым полем?) Просто поле, напрямую из таблицы, никакой экзотики. Victosha советы 1) для начала бы выкинул выводимую таблицу Код: plaintext 1. 2. 3. 4. 5. 6. и ее условие отбора поместил в условие отбора запроса. 2) в расчете на то, что Unique Table это dbo.InvoiceComposition и "количество штук по накладной" - обычное поле, не пересекающееся по имени с прочими полями отбора, - переписал бы запрос так Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. (с выражением лица) Так и будет, когда единственным параметром останется жить @OperationID, а идентификатором накладной - поле OperationID (без _Old и без связки по трем полям, жить старой конструкции осталось максимум неделю.) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2004, 19:04:41 |
|
||
|
Ошибка при редактировании данных в форме
|
|||
|---|---|---|---|
|
#18+
"советы", я, наверно, все-таки оставил бы в силе. А по существу вопроса - не знаю. Попробуй для вычислимых полей использовать полную квалификацию для quantity - dbo.InvoicesComposition.quantity (с выражением лица) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2004, 19:18:52 |
|
||
|
Ошибка при редактировании данных в форме
|
|||
|---|---|---|---|
|
#18+
Попробовала, изменила SELECT. То же самое, -2147217864 Row cannot be located for update. Some values may have been changed since it was last read. [quot VictoshaПопробуй для вычислимых полей использовать полную квалификацию для quantity - dbo.InvoicesComposition.quantity [/quot] Имеется в виду, что в SELECT'е надо вместо звездочки назвать все поля по имени? Сейчас попробую. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2004, 19:39:01 |
|
||
|
Ошибка при редактировании данных в форме
|
|||
|---|---|---|---|
|
#18+
Теперь полный перечень полей открытым текстом и простой INNER JOIN. Все равно та же ошибка... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2004, 20:18:37 |
|
||
|
Ошибка при редактировании данных в форме
|
|||
|---|---|---|---|
|
#18+
Ольга_ТПопробовала, изменила SELECT. То же самое, -2147217864 Row cannot be located for update. Some values may have been changed since it was last read. [quot VictoshaПопробуй для вычислимых полей использовать полную квалификацию для quantity - dbo.InvoicesComposition.quantity Имеется в виду, что в SELECT'е надо вместо звездочки назвать все поля по имени? Сейчас попробую.[/quot] нет имеется ввиду вместо ROUND(dbo.InvoicesComposition.Price,2)*Round(quantity,2) AS CostM, написать ROUND(dbo.InvoicesComposition.Price,2)*Round(dbo.InvoicesComposition.quantity,2) AS CostM, ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2004, 20:37:19 |
|
||
|
Ошибка при редактировании данных в форме
|
|||
|---|---|---|---|
|
#18+
Сделала. Характер поведения формы тот же самый, только перед сообщением о возможной попытке одновременного изменения данных несколькими данными выскакивает еще одно сообщение: Invalid object name 'IRowset' Что это за зверь, я не поняла. Какой-то конфликт в драйвере при обращении к серверу? Пожалуйста, подскажите, куда рыть. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.11.2004, 11:41:33 |
|
||
|
Ошибка при редактировании данных в форме
|
|||
|---|---|---|---|
|
#18+
Поднимаю тему. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.11.2004, 14:07:09 |
|
||
|
Ошибка при редактировании данных в форме
|
|||
|---|---|---|---|
|
#18+
А если новую форму создать, дать ей тот же источник и зафиксировать параметры ошибка повторяется? (с выражением лица) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.11.2004, 14:11:31 |
|
||
|
Ошибка при редактировании данных в форме
|
|||
|---|---|---|---|
|
#18+
При работе с рекордсетом через форму только набор ошибок фатальнее. Я катаю этот рекордсет через процедуру, он и в процедуре на rst.Update глючит. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.11.2004, 14:17:50 |
|
||
|
Ошибка при редактировании данных в форме
|
|||
|---|---|---|---|
|
#18+
даже не знаю, что сказать... может с команду синхронизации проверить? (с выражением лица) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.11.2004, 14:57:33 |
|
||
|
Ошибка при редактировании данных в форме
|
|||
|---|---|---|---|
|
#18+
Опять-таки, без формы и никакой команды синхронизации нет. Сам рекордсет из-под аксеса бастует и на 'IRowset' ссылается. А что это такое, я толком понять не могу и никто мне не отвечает, видать, что-то тривиальное... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.11.2004, 15:42:55 |
|
||
|
Ошибка при редактировании данных в форме
|
|||
|---|---|---|---|
|
#18+
Поднимаю тему. Что означает ошибка Invalid object name 'IRowset' ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.11.2004, 17:01:56 |
|
||
|
Ошибка при редактировании данных в форме
|
|||
|---|---|---|---|
|
#18+
Ольга_ТОпять-таки, без формы и никакой команды синхронизации нет. Сам рекордсет из-под аксеса бастует и на 'IRowset' ссылается. А что это такое, я толком понять не могу и никто мне не отвечает, видать, что-то тривиальное... так это не на форме? а при чем тогда "назначена uniquetable"? что-то я не уверен, что что-нибудь получится... покажи как формируешь, открываешь и изменяешь рекордсет... ( он должен быть adOpenKeySet, с "клиентским курсором", и заказан тип блокировки adLockOptimistic ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.11.2004, 17:24:34 |
|
||
|
Ошибка при редактировании данных в форме
|
|||
|---|---|---|---|
|
#18+
Ну, в форме при назначении источника - стоит Unick Table, а в модельном коде, соответственно, такой параметр не нужен. Женская интуиция подсказывает мне, что проблема совсем не в форме. Полученный аксесом рекордсет больной. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.11.2004, 20:34:38 |
|
||
|
Ошибка при редактировании данных в форме
|
|||
|---|---|---|---|
|
#18+
Скупая мужская интуиция подсказывает мне, что что-то здесь не тут. Как могут сочетаться adUseClient и adOpenDynamic? Правда не исключено, что к делу это не относится. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.11.2004, 21:36:29 |
|
||
|
Ошибка при редактировании данных в форме
|
|||
|---|---|---|---|
|
#18+
2 ЛП это точно - не относится... 2 Ольга_Т Кажется, все не так страшно, как мне сначала подумалось… Проблема, кажется, именно в Unique Table и Resync (интересно - что же это такое - образование?) Как мне показалось, Ваша процедура должна возвращать одну запись для заказанных параметров, при этом соответствующие поля не подлежат редактированию. Если эти предположения верны – то ту же процедуру можно использовать как Resync Command. Если я не прав, то желательно написать специальную процедуру, которая будет испльзоваться в этом качестве… Попробуйте так: rst.Open ("exec InvoicesCompositionP 49748, 1, 52"), conn, adOpenDynamic, adLockOptimistic, 1 rst.Properties("Unique Table")=”dbo.InvoicesComposition” rs.Properties("Resync Command") = " exec InvoicesCompositionP 49748, 1, 52" Debug.Print rst!EditionID & " " & rst!Quantity rst.MoveNext Debug.Print rst!EditionID & " " & rst!Quantity rst!Quantity = rst!Quantity + 5 rst.Update rs.Resync adAffectCurrent Debug.Print rst!EditionID & " " & rst!Quantity Это должно бы заработать… <… тут почиканы сопли…> (с выражением лица) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.11.2004, 01:31:35 |
|
||
|
|

start [/forum/topic.php?fid=45&msg=32782320&tid=1670298]: |
0ms |
get settings: |
7ms |
get forum list: |
10ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
34ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
65ms |
get tp. blocked users: |
2ms |
| others: | 189ms |
| total: | 320ms |

| 0 / 0 |
