![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Работа БД с MS SQL, что лучше? [D6, D7, MSSQL]
_sulent © (2005-08-23 07:36:00)Приветствую!
У меня вопрос такого характера. Работаю с MSSQL через ADO и получается очень неприятная история. Сколько уже бьюсь никак не получается от нее отвязаться.
Допустим программа работает по сети, и если один клиент выполняет запрос на добавление, а второй делает select, то как бы все нормально происходит с добавлением, транзакция вроде как завершается, но... база блокируется. Т.к. говорит что мол таблицы заблокированы, типа до конца не завершился insert. Хотя commit прошел, может есть какая-то тонкость в этом деле?
Что только не пробовал, и через параметры, и даже PAGLOCK, но толку никакого.
Заранее благодарен
sniknik (2005-08-23 08:32:00) [21]> ... типа до конца не завершился insert. Хотя commit прошел ...
т.е. разовое применение добавления в транзакции блокирует дальнейшую работу? (commit прошел). ну это у тебя наверное ошибка в программе.
а тонкости да есть (а где их нет?), делать только "короткие" транзакции (если нужно готовить данные заранее, не "размазывать" ее стартуя а после ожидая чегото), "заворачивать" в транзакцию только то что необходимо (связанные логически данные, блок данных, в общеv то что одно без другого смысла не имеет ), не пользоваться тразакциями для реализации кнопки "отмена" (пример даже такой в книге видел... но так то пример, а воспринимают буквально, типа так надо), работать с транзакциями командами mssql сервера а не компонент (здесь чистое имхо, т.к. много проблем видел именно с компонентной реализацией которые в "секунд" решались заменой на вызов команды сервера... с чем связано, от чего зависит х.з. т.к. в этом случае (MSSQL) они должны быть равнозначны), и т.д. на маленькую брошурку страниц на 18 мелким шрифтом "тонкостей"... все и не вспомнить, только когда конкретная ситуация разбирается можно сказать... "а вот тут есть одна тонкость" ;о)).
p.s. самое главное забыл, не пользоваться обшими фразами при описании проблемы!!! (та еще "тонкость" ;), типа "... но толку никакого". это лучше заменить на конкретный код с пояснениями а последние слова сообшением ошибке/описанием неправильности (в твоем понимании) действия. и как оно должно быть правильно (опять в твоем понимании).