· 8 years ago · May 13, 2018, 07:04 PM
1//
2// sqlDB.m
3// Blogr
4//
5// Created by Mattias Hedman on 2010-08-26.
6// Copyright 2010 Mittmedia IT. All rights reserved.
7//
8
9#import "SqlDB.h"
10
11
12@implementation SqlDB
13
14-(void)createDB {
15
16 if(sqlite3_open([[self filePath] UTF8String], &database) != SQLITE_OK) {
17 sqlite3_close(database);
18 }
19
20 char *errorMsg;
21
22 NSString *createSQL = @"CREATE TABLE IF NOT EXISTS entry (entryID INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, entryDate TEXT, entryTitle TEXT, entryContext TEXT, entryImage TEXT);";
23
24 if(sqlite3_exec (database, [createSQL UTF8String], NULL, NULL, &errorMsg) != SQLITE_OK) {
25 sqlite3_close(database);
26 NSAssert1(0,@"Error creating table: %s", errorMsg);
27 }
28
29}
30
31-(NSString *)filePath {
32 NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
33 NSString *documentsDir = [paths objectAtIndex:0];
34 return [documentsDir stringByAppendingPathComponent:dbFilename];
35}
36
37-(void)openDB {
38 if(sqlite3_open([[self filePath] UTF8String], &database) != SQLITE_OK) {
39 sqlite3_close(database);
40 }
41}
42
43-(void)sqlInsert:(NSArray *)insertValues {
44
45 [self openDB];
46
47 NSString *todayDate = [insertValues objectAtIndex:0];
48 NSString *addTitle = [insertValues objectAtIndex:1];
49 NSString *addContext = [insertValues objectAtIndex:2];
50 NSString *addImageName = [insertValues objectAtIndex:3];
51
52 NSString *insert = [[NSString alloc] initWithFormat:@"INSERT INTO entry (entryDate, entryTitle, entryContext, entryImage) VALUES ('%@', '%@', '%@', '%@');", todayDate, addTitle, addContext, addImageName];
53
54 char *errorMsg;
55
56 if(sqlite3_exec(database, [insert UTF8String], NULL, NULL, &errorMsg) != SQLITE_OK) {
57 NSAssert1(0,@"Error updating tables: %s", errorMsg);
58 }
59 sqlite3_close(database);
60
61}
62
63-(NSArray *)sqlSelect:(NSArray *)selectValues {
64 [self openDB];
65 NSString *query = @"SELECT entryTitle, entryContext, entryImage FROM entry ORDER BY entryDate";
66 sqlite3_stmt *statement;
67 if(sqlite3_prepare_v2(database, [query UTF8String], -1, &statement, nil) == SQLITE_ROW) {
68 while (sqlite3_step(statement) == SQLITE_ROW) {
69 char *title = (char *)sqlite3_column_text(statement, 0);
70 char *context = (char *)sqlite3_column_text(statement, 1);
71 char *image = (char *)sqlite3_column_text(statement, 2);
72
73 NSString *readTitle = [[NSString alloc] initWithUTF8String: title];
74 NSString *readContext = [[NSString alloc] initWithUTF8String: context];
75 NSString *readImage = [[NSString alloc] initWithUTF8String: image];
76
77 NSArray *returnedValues = [[NSArray alloc] initWithObjects: readTitle, readContext, readImage];
78
79 return returnedValues;
80 }
81 }
82}
83
84@end