- (void) createDB {
if(FALSE){
NSString *databasePath = [[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0] stringByAppendingPathComponent: @"contacts.sqlite"];
NSLog(@"Database path....%@",databasePath);
sqlite3 *contactDB;
NSString *name = @"vinay";
NSString *address = @"blr";
NSString *phone = @"1234567890";
const char *dbpath = [databasePath UTF8String];
if (sqlite3_open(dbpath, &contactDB) == SQLITE_OK)
{
const char* key = [@"sap123" UTF8String];
//sqlite3_key(contactDB, key, strlen(key));
char *errMsg;
NSString *insertSQL = [NSString stringWithFormat: @"CREATE TABLE IF NOT EXISTS CONTACTS(ID INTEGER PRIMARY KEY AUTOINCREMENT, NAME TEXT, ADDRESS TEXT, PHONE TEXT)"];
const char *sql_stmt = [insertSQL UTF8String];
if (sqlite3_exec(contactDB, sql_stmt, NULL, NULL, &errMsg) != SQLITE_OK)
// if(1)
{
NSLog(@"Failed to create table");
}
else {
NSLog(@"Table Created.....");
sqlite3_stmt *statement;
NSString *insertSQL = [NSString stringWithFormat: @"INSERT INTO CONTACTS (name, address, phone) VALUES (\"%@\", \"%@\", \"%@\")", name, address, phone];
const char *insert_stmt = [insertSQL UTF8String];
sqlite3_prepare_v2(contactDB, insert_stmt, -1, &statement, NULL);
if (sqlite3_step(statement) == SQLITE_DONE)
{
NSLog(@"contact added");
} else {
NSLog(@"Failed to add contact");
}
sqlite3_finalize(statement);
}
sqlite3_close(contactDB);
} else {
NSLog(@"Failed to open/create database");
}
sqlite3 *database;
int retCode = [self openSQLiteDB:[databasePath UTF8String] database:&database];
if( retCode == SQLITE_OK)
{
}
} else {
// plain DB to encrypted sqlite DB.
sqlite3 *unencrypted_DB;
NSString *path_u = [[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0] stringByAppendingPathComponent: @"contacts.sqlite"];
if (sqlite3_open([path_u UTF8String], &unencrypted_DB) == SQLITE_OK) {
NSLog(@"Database Opened");
int res = -1;
NSMutableString* str = [[NSMutableString alloc]initWithString:@"encrypted"];
NSMutableString* queryStr = [[NSMutableString alloc]initWithString:@"ATTACH DATABASE '%@' AS "];
[queryStr appendString:str];
//NSString * enc_databasePath = [libsDir stringByAppendingPathComponent:@"encrypted.sqlite"];
NSString* de_query = [NSString stringWithFormat:queryStr,path_u];
NSLog(@"deq: %@",de_query);
const char* sqlstmt = [de_query UTF8String];
res = sqlite3_exec(unencrypted_DB, sqlstmt, NULL, NULL, NULL);
NSString* de_export = [NSString stringWithFormat:@"SELECT sqlcipher_export('%@');",str];
const char* sqlstmt1 = [de_export UTF8String];
// export database
res = sqlite3_exec(unencrypted_DB,sqlstmt1, NULL, NULL, NULL);
if(res == SQLITE_OK)
NSLog (@"PASS");
// Detach encrypted database
res = sqlite3_exec(unencrypted_DB, "DETACH DATABASE encrypted;", NULL, NULL, NULL);
NSLog (@"End database copying");
sqlite3_close(unencrypted_DB);
}
else {
sqlite3_close(unencrypted_DB);
NSAssert1(NO, @"Failed to open database with message '%s'.", sqlite3_errmsg(unencrypted_DB));
}
}
}
@end
To unsubscribe from this group and stop receiving emails from it, send an email to sqlcipher+...@googlegroups.com.