|
|
|
Проблема с ADO.
|
|||
|---|---|---|---|
|
#18+
Стандартная ситуация. Есть клиентское Windows приложение написанное на VB + ADO + Oracle. Для отображения используется грид, к которому подцеплен рекордсет. Все действия с записями осуществляются при помощи SQL команд. Т.е используются оракловые SELECT, INSERT, DELETE (а не методы ADO.recordset AddNew, Edit, Delete). С добавлением и редактированием проблем нет, а вот с DELETE возникает следующая ситуация: Допустим форма, в ней грид, в котором 100 записей. Указатель записи стоит к примеру на 47 записи. Жмем кнопку "Удалить" и выполнется следующий код: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. После обновления указатель записи в рекорсете встанет на первую запись. Но правильней было бы чтобы он встал на одну позицию вниз (или вверх) относительно удаленой записи. Пользоваться свойствами Boormark или AbsolutePosition, не правильно, так как после обновления получится уже не тот рекордсет и можно попасть куда-нибудь за пределы набора. Не поскажете, может есть какой-то алгоритм. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.09.2005, 11:38:50 |
|
||
|
Проблема с ADO.
|
|||
|---|---|---|---|
|
#18+
Грид какой используете? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.09.2005, 12:21:43 |
|
||
|
Проблема с ADO.
|
|||
|---|---|---|---|
|
#18+
VideoSoft VSFlexGrid 7.0 (OLEDB) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.09.2005, 12:26:59 |
|
||
|
Проблема с ADO.
|
|||
|---|---|---|---|
|
#18+
Используйте .AbsolutePosition ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.09.2005, 12:51:54 |
|
||
|
Проблема с ADO.
|
|||
|---|---|---|---|
|
#18+
PridobreYИспользуйте .AbsolutePosition Но только в паре с Order By (в запросе). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.09.2005, 12:56:32 |
|
||
|
Проблема с ADO.
|
|||
|---|---|---|---|
|
#18+
Melkiades PridobreYИспользуйте .AbsolutePosition Но только в паре с Order By (в запросе). Добавлю, что нужно учитывать еще и сортировки recordset-а на клиенте, если таковые имеются. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.09.2005, 12:59:19 |
|
||
|
Проблема с ADO.
|
|||
|---|---|---|---|
|
#18+
Вот примерно такая идея Используется для TDBGrid Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.09.2005, 13:03:04 |
|
||
|
Проблема с ADO.
|
|||
|---|---|---|---|
|
#18+
PridobreY Melkiades PridobreYИспользуйте .AbsolutePosition Но только в паре с Order By (в запросе). Добавлю, что нужно учитывать еще и сортировки recordset-а на клиенте, если таковые имеются. Ну это само собой. Однако автор написал, что методы рекордсета не используются. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.09.2005, 13:05:15 |
|
||
|
Проблема с ADO.
|
|||
|---|---|---|---|
|
#18+
Melkiades PridobreY Melkiades PridobreYИспользуйте .AbsolutePosition Но только в паре с Order By (в запросе). Добавлю, что нужно учитывать еще и сортировки recordset-а на клиенте, если таковые имеются. Ну это само собой. Однако автор написал, что методы рекордсета не используются. И в этом случае, надо использовать отключенный Recordset, и чтения данных из БД после удаления записи вообще производить не надо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.09.2005, 13:09:08 |
|
||
|
Проблема с ADO.
|
|||
|---|---|---|---|
|
#18+
Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.09.2005, 13:12:30 |
|
||
|
|

start [/forum/topic.php?fid=60&msg=33248064&tid=2167257]: |
0ms |
get settings: |
5ms |
get forum list: |
9ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
66ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
34ms |
get tp. blocked users: |
1ms |
| others: | 213ms |
| total: | 341ms |

| 0 / 0 |
