|
|
|
Модификация полей ADODB.Recordset
|
|||
|---|---|---|---|
|
#18+
Есть программа для работы с базой данных Visual Fox Pro. В определенный момент необходимо модифицировать записи из выборки, делается это у меня так Код: 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. В последнем коде происходило зацикливание и из-за чего это было не понятно ?( Но после того как исправил выбоку, всего лишь добавив еще одно поле для вывода ( SELECT act, state, owncenterid, date, centerid ), все стало нормально работать. Это глюк чтоли или я что-то неверно делаю? Код: 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. Человеки, поможите, что это может быть, ведь ничего не изменилось по сути. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2006, 11:51:21 |
|
||
|
Модификация полей ADODB.Recordset
|
|||
|---|---|---|---|
|
#18+
почему бы не использовать запрос с выборкой Update в SQL и не мучить рекордсет попробуй убери Update и прогони еще раз или попррбуй использовать save вместо Update-а хотя вряд ли получиться в рекорсете сформированном чере выборку изменит запись ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2006, 12:31:26 |
|
||
|
Модификация полей ADODB.Recordset
|
|||
|---|---|---|---|
|
#18+
Попробуй так: Код: plaintext 1. 2. 3. 4. 5. 6. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2006, 13:54:46 |
|
||
|
Модификация полей ADODB.Recordset
|
|||
|---|---|---|---|
|
#18+
ВasiСИ быстрее и красивше =)) Вопрос в общем-то заключался в том, что у меня непроходили изменения почему-то в первом случае, а во втором варианте кода прошли, хотя я добавил только centerid. Таким образом мне просто не понятно из-за чего была ошибка. А по поводу быстроты, ну не знаю. Что Execute с Update запрсом выполнется быстрее нежели мой цикл, хотя может быть. Только вот выборка у меня почти всегда равна очень малому числу записей от 1 до 10. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2006, 16:11:28 |
|
||
|
Модификация полей ADODB.Recordset
|
|||
|---|---|---|---|
|
#18+
pr0teus ВasiСИ быстрее и красивше =)) Вопрос в общем-то заключался в том, что у меня непроходили изменения почему-то в первом случае, а во втором варианте кода прошли, хотя я добавил только centerid. Таким образом мне просто не понятно из-за чего была ошибка. А по поводу быстроты, ну не знаю. Что Execute с Update запрсом выполнется быстрее нежели мой цикл, хотя может быть. Только вот выборка у меня почти всегда равна очень малому числу записей от 1 до 10. решайся, решайся на Update))))))))))) скорость и без ошибок конечно код у тебя красивее, но не эффективнее ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2006, 16:35:31 |
|
||
|
Модификация полей ADODB.Recordset
|
|||
|---|---|---|---|
|
#18+
Как показывает моя практика работа с Access, крайне нежелательно использовать имена полей схожие с названиями таблиц или с названиями других полей, например owncenterid похоже на centerid возможно, название таблицы у тебя: centerider Может грабли там, а может и нет. Попробуй поменять названия полей, чтобы они были более различимы. Например таблица Centers, поле CenterOwn и CenterId. Если нет, то только полный код поможет увидеть причину. (хотя я не знаю, будет ли у кого желание разбираться) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2006, 19:27:40 |
|
||
|
Модификация полей ADODB.Recordset
|
|||
|---|---|---|---|
|
#18+
Спасибо всем. Попробую повторить сей эффект у себя и поискать эти грабли 8) А то это не дело, когда прога зацыкливается по неизвестным причинам. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2006, 22:51:19 |
|
||
|
Модификация полей ADODB.Recordset
|
|||
|---|---|---|---|
|
#18+
А вот и грабли Query-based update failed because the row to update could not be found. Может ли быть такое, что команда l_objRecordSetSecond.Update является асинхронной и последовательность команд при следующей итерации цикла l_objRecordSetSecond.Fields("state").Value = -1 l_objRecordSetSecond.Update вызовет ошибку, т.к. предыдущая еще выполняется, и как следствие получается зацыкливание при данном коде Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.03.2006, 08:47:53 |
|
||
|
|

start [/forum/topic.php?fid=60&msg=33585505&tid=2166259]: |
0ms |
get settings: |
7ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
179ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
36ms |
get tp. blocked users: |
1ms |
| others: | 234ms |
| total: | 487ms |

| 0 / 0 |
