Предупреждение: передача аргумента 1 из «sqlite3_bind_text» из несовместимого типа указателя «Что мне для этого сделать? - PullRequest
1 голос
/ 26 мая 2010

Я довольно новичок в разработке для iPhone. Я создал одну функцию для вставки данных в базу данных. Код успешно компилируется. Но когда доходит до утверждения sqlite3_bind_text (sqlStatement, 1, [s UTF8String], -1, SQLITE_TRANSIENT);

он ничего не делает, но зависает и в предупреждении говорит "передача аргумента 1" sqlite3_bind_text "из несовместимого типа указателя" "для всех операторов красного цвета

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

Ниже в коде. Это довольно просто. Пожалуйста, помогите, ребята.

-(void) SaveData: (NSString *)FirstName: (NSString *)LastName: (NSString *)State: (NSString *)Street: (NSString *)PostCode

{

databaseName = @"Zen.sqlite";

NSArray *documentPaths = NSSearchPathForDirectoriesInDomains(NSDocumentDire ctory, NSUserDomainMask,YES);

NSString *documentsDir=[documentPaths objectAtIndex:0];

databasePath=[documentsDir stringByAppendingPathComponent:databaseName];

sqlite3 *database;


if(sqlite3_open([databasePath UTF8String], &database) == SQLITE_OK)
{ 
const char *sqlStatement = "insert into customers (FirstName, LastName, State, Street, PostCode) values(?, ?, ?, ?, ?)";

sqlite3_stmt *compiledStatement;

sqlite3_prepare_v2(database, sqlStatement, -1, &compiledStatement, NULL);

sqlite3_bind_text(sqlStatement, 1, [FirstName UTF8String], -1, SQLITE_TRANSIENT);

sqlite3_bind_text(sqlStatement,2,[LastName UTF8String],-1,SQLITE_TRANSIENT);

sqlite3_bind_text(sqlStatement,3,[State UTF8String],-1,SQLITE_TRANSIENT);

sqlite3_bind_text(sqlStatement,4,[Street UTF8String],-1,SQLITE_TRANSIENT);

sqlite3_bind_text(sqlStatement,5,[PostCode UTF8String],-1,SQLITE_TRANSIENT);

sqlite3_step(sqlStatement); 

sqlite3_finalize(compiledStatement);


}

sqlite3_close(database);

} 

1 Ответ

0 голосов
/ 26 мая 2010

Вы должны передать скомпилированный оператор (compiledStatement) в первом параметре, а не текстовый оператор SQL (sqlStatement)

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