· 8 years ago · Dec 10, 2017, 08:20 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 sql = "UPDATE config SET player_name = ?";
32
33 if(sqlite3_prepare_v2(database, sql, -1, &statement, nil) == SQLITE_OK) {
34 sqlite3_bind_text(statement, 1, [config.playerName UTF8String], -1, NULL);
35
36 if(sqlite3_step(statement) != SQLITE_DONE) {
37 // Nothing...
38 }
39 sqlite3_finalize(statement);
40 } else {
41 NSAssert1(0, @"saveConfigWithConfig prepare statement failed with message '%s'.", sqlite3_errmsg(database));
42 }
43 } else {
44 NSAssert1(0, @"saveConfigWithConfig open database failed with message '%s'.", sqlite3_errmsg(database));
45 }
46}
47
48-(void)getConfig {
49 data = [[NSMutableArray alloc] init];
50
51 // Open the database connection
52 if(sqlite3_open([databaseFilename UTF8String], &database) == SQLITE_OK) {
53
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 NSLog(@"GETCONFIG PREPARE%@", databaseFilename);
59 while(sqlite3_step(statement) == SQLITE_ROW) {
60 NSLog(@"GETCONFIG%@", databaseFilename);
61 // Read data from the result row
62
63 // Strings need to be checked for null values first
64 NSString *configPlayerName = @"SAM";
65 char *configPlayerNameCString = (char *) sqlite3_column_text(statement, 1);
66
67 // Strings
68 if(configPlayerNameCString) configPlayerName = [[NSString alloc] initWithUTF8String: (char *) configPlayerNameCString];
69
70 // Create a score object and add it to the data array
71 ITSConfig *config = [[ITSConfig alloc] initWithPlayerName: configPlayerName];
72 [data addObject: config];
73 [config release];
74 }
75
76 sqlite3_finalize(statement);
77 } else {
78 NSAssert1(0, @"getConfig prepare statement failed with message '%s'.", sqlite3_errmsg(database));
79 }
80
81 sqlite3_close(database);
82 } else {
83 NSAssert1(0, @"getConfig open database failed with message '%s'.", sqlite3_errmsg(database));
84 }
85}
86
87@end