Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Работа через MS SQL Server клиентов [D6, MSSQL]


_sulent ©   (2004-04-06 08:34:00) 

Доброго дня!
У меня возникла такая проблема! Есть программа, она работает замечательно, все делает прекрасно, но вот если работают люди по сети, с этой программой (как только не пробовал, и через терминал и локально устанавливал программу чтобы по сети работала), она виснет. Причем если они делают одну задачу, т.е. работают с одним набором таблиц, то все работает замечательно, а вот если кто-то из пользователей пытается подгрузить тругую форму с другим набором таблиц, хотя ссылочная целостность сохраняется, все остальные зависают. И могут отвиснуть только тогда, когда "виновник" этого всего полностью закроет программу.
Пробовал и права и подключения одновременные ставить, все равно виснет!
В чем может быть проблема, и как ее можно будет решить?


_sulent   (2004-04-06 13:38:00) [1]

Решение проблемы на поверхности, если что... Уже проблема решена... так что не спорьте...
Спасибо!


Delirium   (2004-04-06 13:32:00) [2]

> Fay ©
"Это, по-вашему, грамотно?" - это по нашему решение проблемы "Для начала". Дальнейшие действия, человек предпримет сам, когда получит время изучить вопрос.


_sulent   (2004-04-06 12:43:00) [3]

Дело не в транзакции, я думал уже про это, думал даже на каждую операцию запускать транзакцию, но только что же тогда будет твориться с серваком?!
И вообще пока идет работа с занесением данных транзакция не врубается!
Запускаю я транзакцию только тогда, когда начинаю непосредственную запись! Тогда я просто не допускаю других пользователей на пользование таблиц! Естесственно могут они заниматься просмотром базы, но не редактированием.
Скорее всего просто где-то упустил выключение базы, и она скорее всего на этом деле и вылетает!


Fay   (2004-04-06 11:25:00) [4]

2Delirium ©   (06.04.04 10:24) [6]
>> поставь во всех TADOConnection IsolationLevel в lReadUncommitted.

Это, по-вашему, грамотно?


Delirium   (2004-04-06 10:24:00) [5]

"вот что странно..." - ничего странного, работать с уровнями изоляции надо грамотно, раз уж перешёл на серьёзную СУБД. Для начала поставь во всех TADOConnection IsolationLevel в ilReadUncommitted.


_sulent   (2004-04-06 10:24:00) [6]

мда... спасибо что не отказали, придется тогда все переделывать, господи.... а тама так много... ну ладно, другого выхода как я понял нет...
спасибо!


sniknik   (2004-04-06 10:22:00) [7]

курсор в коомпанентах используеш какой, серверный? да - перейди на локальный.
(и логику работы переделай :)


_sulent   (2004-04-06 10:15:00) [8]

С транзакциями все нормально, а вот это надо посмотреть... Просто эта программа была написана под MS Access, а пришлось переделывать на MS SQL Server. Причем раньше она работала нормально с аксесом, и все работало и не подвисало, просто вот что странно...


Fiend   (2004-04-06 09:54:00) [9]

Блокировка данных.
Какие то клиенты скажем делают select из таблицы скажем в 100 записей но весь набор не "фетчат", т.к. он им пока что весь не нужен, а другие вдруг делают апдейт для этой же таблицы, что вызывает "подвисание", т.к. селект заблокировал таблицу или страницу данных, это уже зависит от запроса.

Выход - управлять способом блокирования. Скажем при выполнении select указывать опцию with(nolock) - это чтобы выполнить вообще без блокирования данных. И вообще почитай про блокировки. Причиной могут быть так же как уже сказали выше и не завершенные транзакции


_sulent   (2004-04-06 09:27:00) [10]

переведи что это такое, по конкретнее можешь сказать что посмотреть и что проверить?
Вообще что проверять, потому что весь исходник перерыл, все путем...


ZrenBy   (2004-04-06 09:15:00) [11]

dbcc opentran что показывает ?


Наверх

Титульная страница Поиск, карта сайта Написать письмо