|
пробл. на одном клиенте при удалении записи на другом не смотря на динам.курсор
|
|||
---|---|---|---|
#18+
Помогите, если не сложно. В Grid загружается динамический курсор со стороны сервера (SQL). При изменении записей другим пользователем все ОК - данные обновляются. Но стоит только запись удалить, генерится ошибка прова о дескрипторе, указывающем на удаленную строку. Неужели нет другого пути как Requery на таймере или при возникновении подобной ошибки? И еще, не смотря на серверный динамический курсор, добавленные другим юзером записи тоже не появляются Прошу помочь! Если мой подход не верен в корне - просвятите! ... |
|||
:
Нравится:
Не нравится:
|
|||
26.09.2002, 11:03 |
|
пробл. на одном клиенте при удалении записи на другом не смотря на динам.курсор
|
|||
---|---|---|---|
#18+
У вас адо? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.09.2002, 11:06 |
|
пробл. на одном клиенте при удалении записи на другом не смотря на динам.курсор
|
|||
---|---|---|---|
#18+
ADO и пров соответственно OLE DB ... |
|||
:
Нравится:
Не нравится:
|
|||
26.09.2002, 11:16 |
|
пробл. на одном клиенте при удалении записи на другом не смотря на динам.курсор
|
|||
---|---|---|---|
#18+
Т.е. такая ситуация - один клиент открыл курсор а другой пыпается удалить записи? и у него выскакивает ошибка? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.09.2002, 11:45 |
|
пробл. на одном клиенте при удалении записи на другом не смотря на динам.курсор
|
|||
---|---|---|---|
#18+
И еще забыл спросить - курсор работает с процедурой или таблицей? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.09.2002, 11:47 |
|
пробл. на одном клиенте при удалении записи на другом не смотря на динам.курсор
|
|||
---|---|---|---|
#18+
Сорри - посмотрел на название топика и всё понял - По всей видимости курсор открыт на таблицу - значит ситуация такая - когда вы открываете серверный курсор с одного клиента у вас происходит блокировка строк - а при удаление с другого клиента сервер не может удалить строку потому что она заблокированна первым клиентом. для обновления и для удаления используются разные уровни блокировок. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.09.2002, 11:58 |
|
пробл. на одном клиенте при удалении записи на другом не смотря на динам.курсор
|
|||
---|---|---|---|
#18+
А пути решения? Что вам доступно? Исправления базы вам доступны? Т.е. выпищите только клиента или базу тоже пишите? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.09.2002, 12:01 |
|
пробл. на одном клиенте при удалении записи на другом не смотря на динам.курсор
|
|||
---|---|---|---|
#18+
Попытаюсь описать более подробно. Задача проста и тривиальна - таблица (точнее данные из обновляемого представления) отдается на изменение одному или нескольким юзерам. Мне (да думаю и им) очень бы хотелось, чтобы все изменения, сделанные одним, отображались у другого и наоборот). Вполне естественная вещь. Только с осуществлением проблемы. Из всех допустимых типов курсоров выбран наиболее подходящий на мой взгляд (динамический), блокировка оптимистическая. Т.е. вся таблица не блокируется, а только конкретная запись при update. Все должно быть Ок. Что и происходит, но только с записями, уже загруженными (ошибка - если другой юзер удалил запись, при попытке на нее встать и полное игнорирование вновь добавленных) Так что не знаю, то ли дело в прове, не позволяющем осуществить нужное мне обновление, то ли во мне (остутствие нужных знаний) Что и пытаюсь восполнить :) пишем как клиента так и базу ... |
|||
:
Нравится:
Не нравится:
|
|||
26.09.2002, 12:15 |
|
пробл. на одном клиенте при удалении записи на другом не смотря на динам.курсор
|
|||
---|---|---|---|
#18+
Да, что строка удалена другим юзером, пров сообщает, но только в виде ошибки. И не вижу пока других путей решения, кроме Requery при возникновении соответствующей ошибки. А с добавленными другим юзером записями вообще не знаю, что делать - только вешать обновление на таймер ... |
|||
:
Нравится:
Не нравится:
|
|||
26.09.2002, 12:27 |
|
пробл. на одном клиенте при удалении записи на другом не смотря на динам.курсор
|
|||
---|---|---|---|
#18+
открывайте курсор не на таблицы а на соотв хран процедуры - и по таймеру обновляйте - только учтите что ресурсы сервера не беспредельны :)) - очень много запросов могут и уронить сервер :)) еще попробуйте задать вопрос на форуме по sql - только не это - а сформулируйте по другому -например "как отоброжать на клиенте изменения других клиентов" ну или что то подобное -там больше народу сидит кто с такой ситуацией сталкивался -только уточните что клиент на vb ... |
|||
:
Нравится:
Не нравится:
|
|||
26.09.2002, 12:59 |
|
пробл. на одном клиенте при удалении записи на другом не смотря на динам.курсор
|
|||
---|---|---|---|
#18+
вот кстати оч похожая тема !\r \r /topic/12930 ... |
|||
:
Нравится:
Не нравится:
|
|||
26.09.2002, 13:14 |
|
пробл. на одном клиенте при удалении записи на другом не смотря на динам.курсор
|
|||
---|---|---|---|
#18+
Спасибо, DAO Поптробую обратиться Только не совсем понятно по поводу ХП, чем она может помочь :) ... |
|||
:
Нравится:
Не нравится:
|
|||
26.09.2002, 13:20 |
|
|
start [/forum/topic.php?fid=60&msg=32053266&tid=2171611]: |
0ms |
get settings: |
11ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
28ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
54ms |
get tp. blocked users: |
1ms |
others: | 271ms |
total: | 403ms |
0 / 0 |