2016-04-22 15 views
3

私はSQLiteテーブルの列名の簡単なリストを取得しようとしています。私はSQLite.swift frameworkを使用しています。Sqlite.swiftでカラム名のリストを取得するには?

私の質問はHow to get a list of column names on sqlite3/iPhone?より具体的ですので、私は新しい質問を作成しています。

私のために動作しませんでしたdocumentationthis answerを適用することにより、

try db.execute("PRAGMA table_info(table_name);") 

使用(何も起こりませんでした)。あなたはすでにあなたが次のコードを使用することができ、dbは、列名のリストを取得するには、セットアップと呼ばれるデータベース接続を持っていると仮定すると

答えて

6

table_nameはあなたのテーブルのリテラル文字列に置き換えられ

do { 

    let tableInfo = Array(try db.prepare("PRAGMA table_info(table_name)")) 
    for line in tableInfo { 
     print(line[1]!, terminator: " ") 
    } 
    print() 

} catch _ { } 

名。

また、あなたのテーブルの詳細プラグマ情報を見ることが

print(tableInfo) 

を追加することができます。

クレジットこれを行う方法の手がかりを求めてthis answerから

感謝。

func findColumns(_ tableName:String) { 

    var asAnArray:[String] = [] 
    do { 
     let s = try db!.prepare("PRAGMA table_info(" + tableName + ")") 
     for row in s { asAnArray.append(row[1]! as! String) } 
    } 
    catch { print("some woe in findColumns for \(tableName) \(error)") } 

    let asAString = asAnArray.joined(separator: ",") 

    print(asAnArray) 
    print(asAString) 
} 
:少しタイピングを節約するために Joe Blowからルーチンをテスト済み

例機能

関連する問題