Skip to content

Commit 485f790

Browse files
author
Adrian Herridge
authored
Update SWSQLite.swift
1 parent 5a0e69a commit 485f790

1 file changed

Lines changed: 37 additions & 18 deletions

File tree

Sources/SWSQLite.swift

Lines changed: 37 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,8 @@ public enum DataType {
3636
case String
3737
case Blob
3838
case Null
39-
case Numeric
39+
case Int
40+
case Double
4041
}
4142

4243
public enum ActionType {
@@ -135,19 +136,19 @@ public class Value {
135136
type = .String
136137
stringValue = value as! String
137138
} else if (mirror.subjectType == Float.self) {
138-
type = .Numeric
139+
type = .Double
139140
numericValue = NSNumber(value: value as! Float)
140141
} else if (mirror.subjectType == Double.self) {
141-
type = .Numeric
142+
type = .Double
142143
numericValue = NSNumber(value: value as! Double)
143144
} else if (mirror.subjectType == Data.self) {
144145
type = .Blob
145146
blobValue = value as! Data
146147
} else if (mirror.subjectType == Int.self) {
147-
type = .Numeric
148+
type = .Int
148149
numericValue = NSNumber(value: value as! Int)
149150
} else if (value is NSNumber) {
150-
type = .Numeric
151+
type = .Double
151152
numericValue = value as! NSNumber
152153
} else if (value is NSString) {
153154
type = .String
@@ -158,7 +159,7 @@ public class Value {
158159
}
159160

160161
public func asBool() -> Bool {
161-
if type == .Numeric {
162+
if type == .Int {
162163
return numericValue.boolValue
163164
}
164165
return false
@@ -170,8 +171,12 @@ public class Value {
170171
return stringValue
171172
}
172173

173-
if type == .Numeric {
174-
return numericValue
174+
if type == .Int {
175+
return numericValue.intValue
176+
}
177+
178+
if type == .Double {
179+
return numericValue.doubleValue
175180
}
176181

177182
if type == .Blob {
@@ -188,24 +193,28 @@ public class Value {
188193
return nil
189194
}
190195

191-
public func asNumber() -> NSNumber? {
196+
public func asInt() -> Int? {
192197

193-
if type == .Numeric {
194-
return numericValue
198+
if type == .Int {
199+
return numericValue.intValue
195200
}
196201

197202
return nil
198203
}
199204

200-
public func asInt() -> Int? {
205+
public func asDouble() -> Double? {
201206

202-
if type == .Numeric {
203-
return numericValue.intValue
207+
if type == .Double {
208+
return numericValue.doubleValue
204209
}
205210

206211
return nil
207212
}
208213

214+
public func getType() -> DataType {
215+
return type
216+
}
217+
209218
}
210219

211220
public class Action {
@@ -236,8 +245,10 @@ public class Action {
236245
switch type {
237246
case .String:
238247
builtStatement = "ALTER TABLE \(table) ADD COLUMN \(addColumn) TEXT;"
239-
case .Numeric:
248+
case .Double:
240249
builtStatement = "ALTER TABLE \(table) ADD COLUMN \(addColumn) NUMERIC;"
250+
case .Int:
251+
builtStatement = "ALTER TABLE \(table) ADD COLUMN \(addColumn) INTEGER;"
241252
case .Blob:
242253
builtStatement = "ALTER TABLE \(table) ADD COLUMN \(addColumn) BLOB;"
243254
default:
@@ -249,8 +260,14 @@ public class Action {
249260
}
250261

251262
public class Result {
252-
var results: [Record]? = nil
253-
var error: String? = nil
263+
264+
public var results: [Record] = []
265+
public var error: String? = nil
266+
267+
public init() {
268+
269+
}
270+
254271
}
255272

256273
public class SWSQLite {
@@ -396,8 +413,10 @@ public class SWSQLite {
396413
sqlite3_bind_null(stmt, paramCount)
397414
case .Blob:
398415
sqlite3_bind_blob(stmt, paramCount, [UInt8](v.blobValue!), Int32(v.blobValue!.count), SQLITE_TRANSIENT)
399-
case .Numeric:
416+
case .Double:
400417
sqlite3_bind_double(stmt, paramCount, v.numericValue.doubleValue)
418+
case .Int:
419+
sqlite3_bind_int64(stmt, paramCount, v.numericValue.int64Value)
401420
}
402421

403422
paramCount += 1

0 commit comments

Comments
 (0)