る.ん.だ – 3D –
カテゴリ: ライフスタイル
現在の価格: 無料

の公開処理のUploadで終わり、無事できました。ありがとうでした。

GRDBのダイジェスト分を、徐々に、記述し始めました。

「るんだ-3D-」でのデータベースの処理のI/Fのアタマ部分は「RundaDB」です。

「RundaDB」での処理は。。。。

1.テーブルの存在確認

先にセットしたdbRdQueueで、SQL文を繋ぐしています。
       let sql = String(format: “SELECT COUNT(*) FROM sqlite_master WHERE type=’table’ AND name=’%@'”,tblYosouName)
で、dbRdQueue.inDatabase(・・・)は、SELECT文の含めUPDATE文やINSERT文などのSQL文をセットして処理をしています。

 

2.テーブルの作成

 

t.column(“table_column_name1”, .integer).notNull()
t.column(“table_column_name2”, .integer).notNull()

が、テーブル名の列欄名を順番に設定していきます。

GRDBのマニュアルコードが表示がくれています。英語の記述ですが、ざっくりと見たい(?)でした。

 

3.データベースの読み込み

// sqlを準備 回期数で昇順

let sql = String(format: “SELECT * FROM %@ ORDER BY table_column_name1 DESC limit %d”, lotoType.getLotoTblName(),limitsu)

dbRdQueue.inDatabase{ db in
  let resRows = try Row.fetchCursor(db, sql)  

 rdata.name1 = row.value(named:”table_column_name1″) as Int;
・・・・
}

let resRows = try Row.fetchCursor(db, sql)  が、抽出したテーブルの行欄を順次にRead しています。

rdata.name1 = row.value(named:”table_column_name1″) as Int; で列欄の名前分のデータ値を引き継いで持って行きます。

 

4.データベースの保存

 

// sqlを準備

let sql = String(format: “INSERT INTO %@ (table_column_name1,table_column_name2,table_column_name3) VALUES (?,?,?)”, wtdata.chse.lotoType.getLotoTblName())

table_column_name1 〜table_column_name3の3列欄名のデータを保存処理をしています。

保存時の3列欄名のデータ数は、VALUES (?,?,?) を記述時の引数の回数分と設定しています。

try db.execute( sql, arguments: [su1,su2,su3])

で、設定したデータを保存処理しています。

5.データベースの更新

「4.データベースの保存」と同様に、保存時の3列欄名のデータ数は、VALUES (?,?,?) を記述時の引数の回数分と設定しています。

try db.execute( sql, arguments: [su1,su2,su3])

で、設定したデータを保存処理しています。

6.他、SQL文の記述で諸々。。

    //回期数でGrup化してカウントを戻す 降順

        let sql = String(format: “SELECT table_column_name1 , COUNT(*) AS grpSu FROM %@ GROUP BY table_column_name1”, lotoType.getUserTblName())

       //serデータの指定回期データの取得(limit 10)  IDで降順

        let sql = String(format: “SELECT * FROM %@ WHERE table_column_name1 = %d ORDER BY  table_column_name2 DESC limit %d”,lotoType.getUserTblName(),data1,data2)

 

       //未判定のユーザーデータの抽出 回期数で降順

        let sql = String(format: “SELECT * FROM %@ WHERE table_column_name1 = %d”,lotoType.getLotoTblName(),data1)

 

       //未判定のユーザーデータの抽出 回期数で昇順

        let sql = String(format: “SELECT * FROM %@ WHERE table_column_name2 = 0 ORDER BY table_column_name1 ASC “, lototype.getUserTblName())

   

以上、SQLiteの備忘録でした。。。

ではでは・・ <(_ _)>