Я довольно новичок в sqlite (3 часа)
Здесь я хочу получить строку базы данных в пользовательский объект (объекты имеют тот же номер свойства, что и номер.столбцов в таблице ... так что это не должно быть проблемой там)
Так вот мой код:
#import <Foundation/Foundation.h>
#import "/usr/include/sqlite3.h"
#import "Headers.h"
@interface DataDb : NSObject{
sqlite3 *database;
}
+(DataDb*)database;
+(Singleton*)getSgForIndex:(int)index;
@end
#import "DataDb.h"
@implementation DataDb
static DataDb *database;
+(DataDb*)database
{
if(database==nil){
database=[[DataDb alloc]init];
}
return database;
}
-(id)init{
if(self=[super init]){
NSString *sqliteDb =[[NSBundle mainBundle] pathForResource:@"Data" ofType:@"sqlite3"];
if(sqlite3_open([sqliteDb UTF8String], &database) !=SQLITE_OK){
NSLog(@"Failed to open database!");
return nil;
}
}
return self;
}
+(Singleton*)getSgForIndex:(int)index{
Singleton *returnSingleton =[[[Singleton alloc]init]autorelease];
NSString *query =[NSString stringWithFormat:@"SELECT * FROM Quiz WHERE Q_Id=%i",index];
sqlite3_stmt *statement;
if (sqlite3_prepare_v2(database,[query UTF8String], -1, &statement, NULL)==SQLITE_OK) {
NSLog (@"Works!");
/*
...code...
*/
sqlite3_finalize(statement);
}else{
NSLog(@"Failed!!");
}
return returnSingleton;
}
-(void)dealloc{
sqlite3_close(database);
[super dealloc];
}
@end
.. и компилятор имеет следующую проблему наsqlite3_prepare_v2
function:
Несовместимые типы указателей, передающие «DataDb *» параметру типа «sqlite3 *» (он же «struct sqlite3 *»)
Чтобы быть справедливым ... кодмодифицированную версию примера кода, которую я нашел, но она сработала для рассматриваемого парня, и я не понимаю, почему она не работает для меня