Я хотел бы опубликовать свои классы базы данных, которые я использовал во время разработки:
-(void)check_Create_DB
{
NSArray *docPaths=NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask,YES);
NSString *docDir=[docPaths objectAtIndex:0];
dbPath=[docDir stringByAppendingPathComponent:databaseName];
BOOL success;
NSFileManager *fm=[NSFileManager defaultManager];
success=[fm fileExistsAtPath:dbPath];
if(success) return;
NSString *dbPathFromApp=[[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:databaseName];
[fm copyItemAtPath:dbPathFromApp toPath:dbPath error:nil];
[fm release];
}
-(void)saveData;
{
sqlite3 *database;
[self check_Create_DB];
if(sqlite3_open([dbPath UTF8String], &database) == SQLITE_OK)
{
NSString *sqlTmp=[NSString stringWithFormat:@"insert into AddEmployeeDetails values(NULL,'%@', '%@','%@', '%@', '%@', '%@', '%@', '%@','%@','%@','%@')",[txtempname text],[txtadd text],[txtcountry text],[txtstate text],[txtcity text],[txtcontactno text],[txtqualification text],[txtshift text],[txtposition text],[txtjoindate text],[txtsalary text]];
const char *sqlStmt=[sqlTmp UTF8String];
sqlite3_stmt *cmp_sqlStmt;
int returnValue = sqlite3_prepare_v2(database, sqlStmt, -1, &cmp_sqlStmt, NULL);
//((returnValue==SQLITE_OK) ? NSLog(@"Success") : NSLog(@"UnSuccess") );
if (returnValue==SQLITE_OK) {
temp=2;
NSLog(@"Success");
}
else {
temp=1;
NSLog(@"Unsuccess");
}
sqlite3_step(cmp_sqlStmt);
sqlite3_finalize(cmp_sqlStmt);
}
sqlite3_close(database);
}
-(void)getDataFromTb
{
[self checkAndCreateDatabase];
sqlite3 *database;
mainDataArray=[[NSMutableArray alloc] init];
if (sqlite3_open([databasePath UTF8String], &database)==SQLITE_OK)
{
NSString *sql=[NSString stringWithFormat:@"select * from AlarmTbl"];
const char *sqlStatement = [sql UTF8String];
sqlite3_stmt *compiledStatement;
if (sqlite3_prepare_v2(database, sqlStatement, -1, &compiledStatement, NULL)==SQLITE_OK)
{
while(sqlite3_step(compiledStatement) == SQLITE_ROW) {
NSMutableDictionary *item=[[NSMutableDictionary alloc] init];
[item setObject:[NSString stringWithUTF8String:(char *)sqlite3_column_text(compiledStatement, 0)] forKey:@"Id"];
char *ttl=(char *)sqlite3_column_text(compiledStatement, 1);
if (ttl==NULL) {
[item setObject:@"" forKey:@"title"];
}
else {
[item setObject:[NSString stringWithUTF8String:(char *)sqlite3_column_text(compiledStatement, 1)] forKey:@"title"];
}
char *dttim=(char *)sqlite3_column_text(compiledStatement, 2);
if (dttim==NULL) {
[item setObject:@"" forKey:@"datetime"];
}
else {
[item setObject:[NSString stringWithUTF8String:(char *)sqlite3_column_text(compiledStatement, 2)] forKey:@"datetime"];
}
char *enbl=(char *)sqlite3_column_text(compiledStatement, 3);
if (enbl==NULL) {
[item setObject:@"" forKey:@"enabled"];
}
else {
[item setObject:[NSString stringWithUTF8String:(char *)sqlite3_column_text(compiledStatement, 3)] forKey:@"enabled"];
}
[mainDataArray addObject:item];
}
}
sqlite3_finalize(compiledStatement);
}
sqlite3_close(database);
}