Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2009.07.12;
Скачать: CL | DM;

Вниз

ADO + MS SQL как сделать внесение данных в разные таблицы   Найти похожие ветки 

 
девушка   (2008-10-14 08:59) [0]

Добрый день!

Есть БД на MS SQL 2005 для работы с ней используются компоненты ADO.

Пользователю надо добавить некую запись (например, о Клиенте) в БД. При этом запись будет создаваться не только в таблице КЛИЕНТ, но и в нескольких связаных таблицах.

Для этого Пользователю предлагается мастер - в котором он заполняет нужные поля.

Редактирование записей происходит в разных формах с ДБ-компонентами и ADODataSet.
Мастер представляет из себя некий набор из фреймов, составляющих формы для редактирования (с нужными ограничениями).
Примерная работа мастера:
* Открываем транзакцию.
* создаем набор "пустых" записей, нужных для заполнения данных о Клиенте.
* Пользователь проходясь по вкладкам мастера редактирует эти данные.
* Пользователь нажимает на кнопку "Ок" - изменения фиксируются.
* Пользователь нажимает на кнопку "Отмена" - транзакция откатывается.

Проблема:
При открытии транзакции adocMSSQL.BeginTrans;
Блокируется вся таблица КЛИЕНТ.

Как правильно организовать работу приложения и Пользователя?


 
stas ©   (2008-10-14 09:02) [1]

в sql транзакцию запускать.
Begin tran
insert into
...
insrt into
...
update
commit tran


 
Johnmen ©   (2008-10-14 09:10) [2]

Транзакция стартуется перед выполнением реальных запросов к БД, а не перед тисканьем компонентов редактирования.


 
девушка   (2008-10-14 09:18) [3]


> Транзакция стартуется перед выполнением реальных запросов
> к БД, а не перед тисканьем компонентов редактирования.


Ваша правда!

Как сделать чтобы пользователь мог создать несколько записей в связаных таблицах, редактировать их, и при необходимости, отменить свои действия вплоть до отмены создания записей?


 
Johnmen ©   (2008-10-14 09:26) [4]

Ещё раз - пользователь не балуется с записями в таблицах, но играется с записями в наборах данных. Как максимум.
Когда надо отобразить изменения на реальные таблицы - тут уж и тр-ию. стартует, и отображает, и т.д.
Такова базовая идеология, реализованная в АДО. И не только в нём...


 
Сергей М. ©   (2008-10-14 09:38) [5]


> Блокируется вся таблица


Кто тебе сказал что вся ?


> Как сделать


см. справку по теме "Using batch updates"


 
девушка   (2008-10-14 09:44) [6]


> Ещё раз - пользователь не балуется с записями в таблицах,
>  но играется с записями в наборах данных. Как максимум.


Точно! Вопрос снят :)
Спасибо



Страницы: 1 вся ветка

Текущий архив: 2009.07.12;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.014 c
2-1242877845
NaRuTo
2009-05-21 07:50
2009.07.12
Как узнать продолжительность звукового файла?


15-1242246604
Юрий
2009-05-14 00:30
2009.07.12
С днем рождения ! 14 мая 2009 четверг


2-1242651148
Wadim005
2009-05-18 16:52
2009.07.12
Как организовать поиск текста по шаблону?


15-1242320026
VoznikVopros
2009-05-14 20:53
2009.07.12
Где можно взять красивые иконки для базы данных?..


15-1242186290
vajo
2009-05-13 07:44
2009.07.12
Насколько должны быть одинакова CPU на 2хпроц-й М/B