2016-04-25 14 views
1

私はすでに自分のアプリケーションのsqliteテーブルを作成しましたが、今はデータベースにテーブルの新しい列を追加したいと思います。 ALTER TABLEはこの問題で私を助けますが、最初にデータベースのバージョンをチェックしたいと思います。 、私は、ユーザーのバージョンを確認し、user_versionを更新するために、プラグマuser_versionを使用していますが、それは常に0sqliteでデータベースのバージョンをアップグレードする方法とすぐにテーブルの新しい列を追加する

var database: FMDatabase? = nil 

    class func getInstance() -> ModelManager{ 
     if(sharedInstance.database == nil){ 
      sharedInstance.database = FMDatabase(path: Util.getPath("XXXX.sqlite")) 
     } 
     return sharedInstance 
    } 


    func userVersion(){ 
     sharedInstance.database!.open() 
     var userVer = Int() 
     let resultSet = sharedInstance.database?.executeQuery("pragma user_version", withArgumentsInArray: nil) 
     userVer = Int(resultSet!.intForColumn("user_version")) 
     print("user version : ",userVer) 
     sharedInstance.database!.close() 
    } 

    func updateUserVersion(){ 
     sharedInstance.database!.open() 
     sharedInstance.database?.executeUpdate("PRAGMA user_version=1", withArgumentsInArray: nil) 
     sharedInstance.database!.close() 
    } 

答えて

0

としてuser_versionを返すあなたはそれが最初の行をロードするように、あなたたresultSetにnext()メソッドを呼び出す必要がありますintForColumnにアクセスする前に

さらに、FMDBを使用しているので、https://github.com/groue/GRDB.swiftを見てください。これは、SQLite用のSwiftラッパーで、FMDBユーザーにはよく知られています。しかし、今度はlet userVer = Int.fetchOne(db, "pragma user_version")と書くだけです。

0

はモジラ、Firefoxのからデータベースにアクセスするには、次の手順を実行します。

1] Download mozila browser 
2] In tools select Sqlite-manager option. 
3]In that Browse Your Project Sqlite database file 
4] and do whatever changes you want on table that you created. 

はそれがあなたのために働くことを願っています。

関連する問題