SQLE_NOT_PUBLIC_ID Sybase mobilink error

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

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

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

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

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

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

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

Любые советы приветствуются!

1 ответ

Решение

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

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

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

Другие вопросы по тегам