SQLite.swift:INSERT

时间:2016-11-28 11:03:58

标签: swift sqlite.swift

我尝试使用SQLite.swift Lib,但是我在INSERT期间收到错误:

  

错误Domain = SQLite.Result Code = 0"(null)"

我已经设置了一个Database类(DBContact是一个简单的结构):

import SQLite

class SQLiteDatabase {
var db : Connection;
let contacts = Table("contacts");

let contacts_id = Expression<Int64>("id");
let contacts_surname = Expression<String?>("surname");
let contacts_firstname = Expression<String?>("firstname");
let contacts_salutation = Expression<String?>("salutation");
let contacts_title = Expression<String?>("title");



init(){
    let path = NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true).first!
    self.db = try! Connection("\(path)/contacts.sqlite3");
    //Create contacts table
    try! db.run(self.contacts.create(ifNotExists: true) { t in
        t.column(contacts_id, primaryKey: .autoincrement)
        t.column(contacts_surname)
        t.column(contacts_firstname)
        t.column(contacts_salutation)
        t.column(contacts_title)
    });
}

func createContact(inContact : DBContact) -> Bool {
    var reval = true;

    do {
        let insert = contacts.insert(contacts_surname <- inContact.surname,
                                    contacts_firstname <- inContact.firstname,
                                    contacts_salutation <- inContact.salutation,
                                    contacts_title <- inContact.title
        );
        try self.db.run(insert);
    } catch {
        let error = error as NSError;
        print(error);
        reval = false;
    }

    return reval;
}


func listContacts() {

    do {
        for  contact in try self.db.prepare(contacts) {
            print("id: \(contact[contacts_id]), name: \(contact[contacts_surname])")
        }
    } catch {
        print("Whoops there was an error")
    }

}


}

我这样使用它:

var db = SQLiteDatabase();

override func viewDidLoad() {
    super.viewDidLoad();

    var sg = DBContact();
    sg.surname = "Gerom";
    sg.firstname = "Steven";
    sg.title = "Mr.";


    db.createContact(inContact: sg);

}

为什么我收到此INSERT错误?我的方式是设置这样一个数据库使用正确的类吗? (我是IOS / Swift编程的新手)

最好的问候......

0 个答案:

没有答案