スポンサーリンク

【Swift】SQLiteで取得するデータの個数を取得する方法ご紹介。

Swift
スポンサーリンク

今回の記事はSwiftでSQLiteを使用する際にデータの個数を取得する方法をご紹介する記事です。初心者にも分かりやすいように記載してくので是非参考にしてみてください。

スポンサーリンク

SwiftでSQLiteを使用する手順

まず下記で既存のDBに接続します。

var db: OpaquePointer?
let dbfile: String = "[指定のDBネーム].db"
    
func openDB()->Bool {
    let fileURL = try! FileManager.default.url(for: .documentDirectory, in: .userDomainMask, appropriateFor: nil, create: false).appendingPathComponent(self.dbfile)
    sqlite3_open(fileURL.path, &db)
}

DBにデータが入っていない場合やDB、テーブルがない場合は下記サイトにしたがって何かしらデータを入れてからの操作になります。

SwiftでSQLiteを使用する方法

SQLIteで取得するデータの個数を取得

個数を取得する方法は2通りあります。一つはSQLiteの文でカウントを取得する方法です。ただし、こちらはSelectの他にメソッドを作る必要があるのでそれよりは全てのデータをリストとして取得した上でその列数を取得する方法です。

今回はそちらを使用します。

 var lists[[String]] = [[]]  
 func select(query:String)->[[String]] {
    var stmt:OpaquePointer?
            
    // クエリを準備する
    if sqlite3_prepare(db, query, -1, &stmt, nil) != SQLITE_OK{
        let errmsg = String(cString: sqlite3_errmsg(db)!)
        print("error preparing insert: \(errmsg)")
    }
        
    var list:[[String]] = []
    // クエリを実行し、取得したレコードをループする
    while(sqlite3_step(stmt) == SQLITE_ROW){
        var list_:[String] = []
        let name = String(cString: sqlite3_column_text(stmt, 0))
        let state = String(cString: sqlite3_column_text(stmt, 1))
            
        //リストに格納(テーブルの数だけ)
        list_.append(contentsOf: [name,state])
        list.append(list_)
    }
    return list
}

これで列数を取得すればデータ数が取得できるのでメソッドの削減ができます。

Selectの引数文字列は下記を入れればOKです。

SELECT * FROM [テーブルネーム]

では今回の記事は以上です。他にも多数の記事を記載しているのでそちらも是非参考にしてみてください。

本記事を読んでいただき感謝です。サイトを訪れていただいた方はプログラミング勉強中かと思いますのでプログラミング勉強のコツを合わせてご紹介。

スポンサーリンク
スポンサーリンク
スポンサーリンク

ブログに関しては500円程度かかりますが、それ以外は無料です。知識の吸収と並行してアウトプットは非常に効率が良いです。テックアカデミーに関しては講座レベルが高いにも関わらず、無料体験や人気口座も大幅値下げがあるので、重点的に学びたいものを無料体験してみてください。

転職時にも、エンジニアからテックアカデミー・Paizaは認知度が高いので、未経験入社採用を行う際履歴書で目に留まります。特にPaizaのスキルレベルA・SなどはIT業界でも評価されます。

テックアカデミー・Paizaの無料登録ができる期間中にぜひご利用してみてください。私も活用経験ありです。

Swift
スポンサーリンク
スポンサーリンク

コメント

タイトルとURLをコピーしました