SQlite - iPhone SDK - Ошибка подтверждения - PullRequest
0 голосов
/ 08 декабря 2010

Я пытаюсь сохранить значения в базе данных SQLite в iPhone SDK. Когда я выполню эту строку

[database executeNonQuery:strQuery1];

Это сообщение печатается на консоли.

Ошибка этапа SQLite: ограничение не выполнено

Мне нужна срочная помощь, так как я должен представить проект сегодня вечером. Я пытался с 2 дней, и это сводит меня с ума.

Вот краткая информация о заголовочном файле Я объявил это в своем заголовке View Controller, используя эту строку. <pre> Sqlite *database; </pre></p> <p>And heres the header of SQlite</p> <pre> @interface Sqlite : NSObject { NSInteger busyRetryTimeout; NSString *filePath; sqlite3 *_db; } @property (readwrite) NSInteger busyRetryTimeout; @property (readonly) NSString *filePath; + (NSString *)createUuid; + (NSString *)version; - (id)initWithFile:(NSString *)filePath; - (BOOL)open:(NSString *)filePath; - (void)close; - (NSInteger)errorCode; - (NSString *)errorMessage; - (NSArray *)executeQuery:(NSString *)sql, ...; - (NSArray *)executeQuery:(NSString *)sql arguments:(NSArray *)args; - (BOOL)executeNonQuery:(NSString *)sql, ...; - (BOOL)executeNonQuery:(NSString *)sql arguments:(NSArray *)args; - (BOOL)commit; - (BOOL)rollback; - (BOOL)beginTransaction; - (BOOL)beginDeferredTransaction;

Ответы [ 3 ]

1 голос
/ 08 декабря 2010

Если бы только был какой-то ресурс линии, куда вы могли бы пойти и ввести «ограничение не удалось» в поле поиска , чтобы получить ответ.

Так как это, к сожалению, не так, я скажу вам. Проблема, скорее всего, в том, что вы нарушаете ключевое ограничение в своем запросе. Трудно сказать, не видя запрос и схему базы данных, но, возможно, вы пытаетесь вставить строку с повторяющимся первичным ключом или вставить строку с внешним ключом, которого нет в указанной таблице. *

0 голосов
/ 10 декабря 2010

Прежде всего, просто поделитесь запросом.Вы начинаете злить людей.

Во-вторых, уверены ли вы, что загадочный запрос не является запросом INSERT, и уверены, что он не выполняется дважды по вашему загадочному коду?

Это объясняет, что вы не видите ошибки при выполнении запроса (один раз) вручную.

0 голосов
/ 08 декабря 2010

Выполнение этого в SQLliteManager не поможет вам, это немного по-другому на iPhone.Вы должны иметь возможность получить ошибку из базы данных, используя свойство errorMessage.И да, также дайте нам сам запрос.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...