2013-04-19 5 views
-1

Я разрабатываю программу базы данных в базе клиент/сервер. Я начал сервер TcpListener класс (C#). Клиенты будут подключены и запросов от клиентов, будет выполняться в файле на стороне сервера mdf и результат передается через NetworkStream классаКак копировать файл базы данных SQL Server 2005 (MDF)

Теперь, клиент выполняет транзакцию (DML) над объектом SqlConnection(одно соединение для каждого Клиента Thread) на сервере, в то время как обработка транзакции одного клиента на платформе таблице, другие клиенты могут не в состоянии восстановить данные с сервера, пока первый клиент commit ред или rollback не эд свою сделку на данной конкретной таблице.

Здесь, мне нужно реплицировать файл MDF для других клиентов, которые все запрашивающие данные, в то время как клиент делает DML Сделки, не заботясь о Совершении/Aborting любого клиента ..

просто мне нужен ток Данные, доступные в файле MDF другим клиентам. После того, как транзакция Commit изменяет только фактические данные в MDF.

ответ

1

Другие клиенты не могут получить данные с сервера до тех пор, пока первый клиент не совершит транзакцию или не откажет ее.

Bullshit. SQL Server поддерживает параллелизм. Во многих отношениях. Вам нужно прочесть основы. Начните с Accessing and Changing Database Data.

+0

+1 Обратите особое внимание на уровни изоляции. Однако чтение грязных данных - очень опасная вещь, потому что ti может появиться и исчезнуть по желанию, что означает, что ваш клиент не будет знать, что на самом деле все еще существует к моменту получения набора данных. –

+0

Я говорю, что другие клиенты не могут получить данные .. всякий раз, когда операция вставки, удаления, обновления выполняется клиентом1, клиентский запрос Select2 ожидает ответа на эту конкретную таблицу. Его происходит г-н @Remus Rusanu. во время выполнения 'objAdap.Fill (objDataset)' его ожидания .. и когда Client1 выполнил команду 'commit' или' rollback', тогда отобразятся данные запроса Query Client2. –

Смежные вопросы