· 8 years ago · Dec 10, 2017, 06:32 PM
1//
2// ITSConfigModel.m
3// ITSupport
4//
5// Created by Adrian Harding on 03/03/2010.
6// Copyright 2010 First Stop IT. All rights reserved.
7//
8
9#import "ITSConfigModel.h"
10
11@implementation ITSConfigModel
12
13-(id)initWithFilename:(NSString *)filename {
14 [super initWithFilename:filename];
15 [self createTable];
16 return self;
17}
18
19-(void)createTable {
20 if(sqlite3_open([databaseFilename UTF8String], &database) == SQLITE_OK) {
21 NSLog (@"CREATED TABLE%@", databaseFilename);
22 sql = "CREATE TABLE IF NOT EXISTS config (id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, player_name VARCHAR(255) NOT NULL DEFAULT Player)";
23 result = sqlite3_exec(database, sql, NULL, NULL, &errorMsg);
24 } else {
25 NSAssert1(0, @"createTable open connection failed with message '%s'.", sqlite3_errmsg(database));
26 }
27}
28
29-(void)saveConfigWithConfig: (ITSConfig *) config {
30 if(sqlite3_open([databaseFilename UTF8String], &database) == SQLITE_OK) {
31 NSLog (@"savedConfigWithConfig%@", databaseFilename);
32 sql = "UPDATE config SET player_name = ?";
33
34 if(sqlite3_prepare_v2(database, sql, -1, &statement, nil) == SQLITE_OK) {
35 sqlite3_bind_text(statement, 1, [config.playerName UTF8String], -1, NULL);
36
37 if(sqlite3_step(statement) != SQLITE_DONE) {
38 // Nothing...
39 }
40 sqlite3_finalize(statement);
41 } else {
42 NSAssert1(0, @"saveConfigWithConfig prepare statement failed with message '%s'.", sqlite3_errmsg(database));
43 }
44 } else {
45 NSAssert1(0, @"saveConfigWithConfig open database failed with message '%s'.", sqlite3_errmsg(database));
46 }
47}
48
49-(void)getConfig {
50 data = [[NSMutableArray alloc] init];
51
52 // Open the database connection
53 if(sqlite3_open([databaseFilename UTF8String], &database) == SQLITE_OK) {
54 NSLog (@"open database connection%@", databaseFilename);
55 sql = "SELECT * FROM config LIMIT 1";
56
57 if(sqlite3_prepare_v2(database, sql, -1, &statement, nil) == SQLITE_OK) {
58 while(sqlite3_step(statement) == SQLITE_ROW) {
59 // Read data from the result row
60
61 // Strings need to be checked for null values first
62 NSString *configPlayerName = @"";
63 char *configPlayerNameCString = (char *) sqlite3_column_text(statement, 1);
64
65 // Strings
66 if(configPlayerNameCString) configPlayerName = [[NSString alloc] initWithUTF8String: (char *) configPlayerNameCString];
67
68 // Create a score object and add it to the data array
69 ITSConfig *config = [[ITSConfig alloc] initWithPlayerName: configPlayerName];
70 [data addObject: config];
71 [config release];
72 }
73
74 sqlite3_finalize(statement);
75 } else {
76 NSAssert1(0, @"getConfig prepare statement failed with message '%s'.", sqlite3_errmsg(database));
77 }
78
79 sqlite3_close(database);
80 } else {
81 NSAssert1(0, @"getConfig open database failed with message '%s'.", sqlite3_errmsg(database));
82 }
83}
84
85@end