|
|
|
row cannot be located for updatig...
|
|||
|---|---|---|---|
|
#18+
Привет всем ! Много лазил по поисковику, может не там смотрел или не тем местом, но я в тупике. Немогу понять в чем проблема. При обновлении таблицы выходит ошибка "row cannot be located for updatig.Some values may have been changed..... " Причем только некоторые строки не обновляются,а в целом работает. И это происходит независимо от того, новые данные прописываю в поле Dolg или нет. БД MySQL. Пока один работаю в БД. Структура таблицы Klient : PrKey autoinc -- KlientId Char --- KlName Double (9,2) -- Dolg Set rs = New Recordset SQL = "SELECT KlientId,Dolg From Klient" rs.CursorLocation = adUseClient rs.Open SQL, cn, adOpenStatic, adLockPessimistic For i = 0 To rs.RecordCount - 1 SQL = "SELECT SUM(Count*ProdPrice) From Prodaja WHERE KlientId=" & rs!KlientId Set rs2 = New Recordset rs2.Open SQL, cn, adOpenStatic, adLockReadOnly If Not IsNull(rs2.Fields(0)) Then rs!Dolg = rs2.Fields(0) Else rs!Dolg = 0 rs2.Close Set rs2 = Nothing SQL = "SELECT SUM(OplSum) From Oplata WHERE KlientId=" & rs!KlientId Set rs2 = New Recordset rs2.Open SQL, cn, adOpenStatic, adLockReadOnly If Not IsNull(rs2.Fields(0)) Then rs!Dolg = rs!Dolg - rs2.Fields(0) rs2.Close Set rs2 = Nothing rs.Update rs.MoveNext Next i rs.Close Set rs = Nothing Помогите понять почему конкретные строки не обновляются. Спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.09.2007, 13:36 |
|
||
|
row cannot be located for updatig...
|
|||
|---|---|---|---|
|
#18+
может пока открыт rs кто-то мог изменить значения в этом поле? поиграйтесь с параметрами рекордсета, к примеру adBathOptimistic I Have Nine Lives You Have One Only THINK! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.09.2007, 14:05 |
|
||
|
row cannot be located for updatig...
|
|||
|---|---|---|---|
|
#18+
Менял параметры recordset , ничего не помогает. Не в блокировке дело. И в базе пока один работаю, никто не мог ничего изменить. Для доступа к базе использую DBACentral for MySQL. Так вот, в нем меняю значение этого поля, после этого код работает, но один раз. После опять спотыкается на rs.Update именно на определенном клиенте. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.09.2007, 14:18 |
|
||
|
row cannot be located for updatig...
|
|||
|---|---|---|---|
|
#18+
вот что нарыл т.е смысл в следующем, если значения поля хоть как-то совпадают, то выдается ошибка как я понял это относится только к MySQL 1) видимое решение: проверять предыдущее значение и, если то же самое, то не делать обновление 2) делать update через запрос update MyTable Set ... I Have Nine Lives You Have One Only THINK! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.09.2007, 14:49 |
|
||
|
row cannot be located for updatig...
|
|||
|---|---|---|---|
|
#18+
Спасибо HandKot за оперативные ответы. Только что попробовал поменять формат поля Dolg c Double на DECIMAL и все заработало. Непонятно только почему в Double не работало, я то не сравниваю , а присваиваю !? Еще раз спасибо ! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.09.2007, 14:57 |
|
||
|
row cannot be located for updatig...
|
|||
|---|---|---|---|
|
#18+
Денги надо хранить в полях Decimal а не Double. А программу я бы так написал: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.09.2007, 15:14 |
|
||
|
row cannot be located for updatig...
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.09.2007, 15:35 |
|
||
|
row cannot be located for updatig...
|
|||
|---|---|---|---|
|
#18+
Деньги деньгами, но почему не обновлялось поле с форматом Double ? Теперь его (формат) не использовать чтоли , раз Update не всегда работает ? Проблема решена, просто интересно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.09.2007, 15:40 |
|
||
|
row cannot be located for updatig...
|
|||
|---|---|---|---|
|
#18+
При обновлении таблицы выходит ошибка "row cannot be located for updatig. Some values may have been changed ..... " Текст ошибки говорит сам за себя. Это означает, что другой клиент обновил запись с тех пор, как ты ее получил. Нужно просто сделать rs.Resync, а потом опять UpdateBatch. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.09.2007, 15:41 |
|
||
|
row cannot be located for updatig...
|
|||
|---|---|---|---|
|
#18+
я бы сделал еще проще Код: plaintext 1. 2. 3. 4. 5. 6. 2 sergeych возможно это проблема провайдера, т.к. насколько я понял, данная ошибка только на базе MySQL и в других базах не наблюдается I Have Nine Lives You Have One Only THINK! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.09.2007, 15:47 |
|
||
|
row cannot be located for updatig...
|
|||
|---|---|---|---|
|
#18+
HandKotя бы сделал еще прощеНа это я и надеялся что кто-то напомнит как делаются такие апдейты. Сам я подзабыл SQL за последний год. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.09.2007, 15:51 |
|
||
|
|

start [/forum/topic.php?fid=60&msg=34835210&tid=2163333]: |
0ms |
get settings: |
5ms |
get forum list: |
10ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
74ms |
get topic data: |
7ms |
get forum data: |
3ms |
get page messages: |
35ms |
get tp. blocked users: |
1ms |
| others: | 207ms |
| total: | 346ms |

| 0 / 0 |
