iOS: Код Objective C VoIP/SIP С открытым исходным кодом [закрывается]

Один способ обработать это состоит в том, чтобы сделать это в транзакции и заставить Ваш Запрос Select взять блокировку обновления на строках, выбранных, пока транзакция не завершается.

BEGIN TRAN

SELECT Id FROM Table1 WITH (UPDLOCK)
WHERE AlertDate IS NULL;

UPDATE Table1 SET AlertDate = getutcdate() 
WHERE AlertDate IS NULL;

COMMIT TRAN 

Это устраняет возможность, что параллельный клиент обновляет строки, выбранные в момент между Вашим ВЫБОРОМ и Вашим ОБНОВЛЕНИЕМ.

, Когда Вы будете фиксировать транзакцию, блокировки обновления будут выпущены.

Другой способ обработать это состоит в том, чтобы объявить курсор для Вашего ВЫБОРА с помощью опции FOR UPDATE. Затем ОБНОВИТЕ КУРСОР WHERE CURRENT OF. Следующее не тестируется, но должно дать Вам основную идею:

DECLARE cur1 CURSOR FOR
  SELECT AlertDate FROM Table1 
  WHERE AlertDate IS NULL
  FOR UPDATE;

DECLARE @UpdateTime DATETIME

SET @UpdateTime = GETUTCDATE()

OPEN cur1;

FETCH NEXT FROM cur1;

WHILE @@FETCH_STATUS = 0
BEGIN

  UPDATE Table1 AlertDate = @UpdateTime
  WHERE CURRENT OF cur1;

  FETCH NEXT FROM cur1;

END
60
задан User97693321 22 October 2012 в 13:08
поделиться

1 ответ

Вы можете взглянуть на siphon ( http://code.google.com/p/siphon/ ).

На их домашней странице:

Первый в мире бесплатный Приложение SIP / VoIP для iPhone и iPod Touch 1 и 2.

Проект Siphon SIP / VoIP - первый в своей категории, которая работает на iPhone и iPod Touch 2 с гарнитурой для всех SIP-провайдеры. Это родной приложение одобрено для работы на 2.X используя внутренний микро / динамик и гарнитура.

Приложение поддерживает SIP стандартный, с сохранением совместимости с сотнями провайдеров SIP и предлагает графический интерфейс, который сохраняет яблоко дизайн родных приложений для iPhone.

50
ответ дан 24 November 2019 в 17:52
поделиться
Другие вопросы по тегам:

Похожие вопросы: