Каковы варианты использования данных, которые клиенты забирают с собой? Они только обновляют данные или также вводят новые данные?
Для обновления только данных вам необходимо принять решение о том, является ли последнее значение для конкретной строки правильным (например, зафиксировать значение с последней отметкой времени) или есть ли значение в других данных.
При работе со вставкой данных я собираюсь предположить, что ваша база данных использует инкрементальный первичный ключ. В этом случае вы не сможете просто зафиксировать DataTable, полученный из приложения PDA. Вам нужно будет определить, какие новые строки, а затем вставить эти новые строки БЕЗ инкрементного идентификатора в таблицу сервера, чтобы сгенерировать новый инкрементный идентификатор. Затем вы должны обновить DataTable КПК новыми сгенерированными идентификаторами.
Чтобы иметь дело с фактическим порядком, в котором обрабатываются обновления (синхронизация нескольких клиентов одновременно), я бы предложил, чтобы процесс синхронизации помещал наборы данных в очередь так, чтобы обновления сервера последовательно управлялись, что делает процесс немного проще.