SQLE_NOT_PUBLIC_ID ошибка Sybase mobilink

Я работаю над проектом ios, который имеет базу данных Sybase (ultralite), синхронизированную с базой данных Sybase Sql Anywhere 12 с помощью mobilink.

Все было правильно, пока я не решил сегодня добавить некоторые поля в основную базу данных, чтобы они синхронизировались с основной базой данных.

Я обновил схему консолидированной базы данных из главного ядра, затем обновил схему удаленной базы данных из консолидированного ядра, а затем сопоставил добавленные поля вместе и развернул новую базу данных ultralite.
Обратите внимание, что я не в первый раз делаю подобную задачу, я всегда добавляю поля и синхронизирую базы данных..

после обновления, когда я синхронизирую с помощью пустой базы данных ultralite, mobilink не даст только эту ошибку: Ошибка синхронизации: -1305 (MOBILINK_COMMUNICATIONS_ERROR) %1:201 %2: %3:0

Я исследовал номер ошибки 201 в sybase, и это указывает на: SQLE_NOT_PUBLIC_ID
и в документации sybase причиной ошибки, вероятно, является:

«Параметр, указанный в инструкции SET OPTION, является только открытым. Вы не можете определить этот параметр для любого другого пользователя.»

Я пытался повторно развернуть, я пытался переместить двигатель на ПК с windows, все дают ту же ошибку.. и я понятия не имею, откуда пришел этот оператор SET OPTION и как я могу его решить..

Любые подсказки ценятся!

1 ответ

  1. Проблема была вызвана небольшим значением тайм-аута сети при настройке параметров mobilink.

    info.stream_parms = (char*) @"host=192.168.0.100;port=3309;timeout=1"
    

    я просто изменил значение с timeout=1 на timeout=300, и это сработало!