見出し画像

【Console Application】ファイルとデータベース 265【学習記】

概略

接続書くだけで一苦労😞
sqlite3_open の引数 ppDb は `sqlite3* conn; sqlite3_open(fn,&conn);` という形になるけれどクラスメンバーの場合は直接 `&self.conn` の様な書式は認められないため、一旦ローカル変数で受け取ってメンバーに代入する事になる🙄めんどい

#学習記 #Objective_C
#SQLite

【Console Application】ファイルとデータベース【学習記】
仕様
https://note.com/sayka/n/nb8a67fa90a64?magazine_key=m7bb64c6a359f#br1mB

仕様
レコード
・レベル
 1-12
・難易度
 b,n,h,a,l
・曲名
・ランプ
 -,x,a,e,c,h,e,f

オプションスイッチ
-u file.csv # 更新(略値)
 ファイル名だけ指定した場合更新処理と見做す
-d file.csv # 削除
-p # csv 出力(略値)
 何も指定せずに起動した場合出力処理と見做す
-v # バージョン
-h # ヘルプ

----備忘録
(現在無し)


前回の粗筋

どうにかこうにか SQLite を純正で取り込む事ができたけれど実装部分は勿論 Java と違うので険しい道もまだ五合目という感じ😑


DBControllerBase

Java では Connection , Statement , ResultSet だったけど OC では果たして…?🤔

SQLiteの使用方法【Objective-C】
https://reigle.info/entry/2020/04/26/000000_3

SQLite3
http://copypaste.sakura.ne.jp/index/myApp/sqlite3/

iOSのSQLiteデータベース
https://www.w3big.com/ja/ios/ios-sqlite.html

前回調べた記事3つを見ながら進めるぽ🤤
これらを見る限りだと sqlite3 が Connection 、 sqlite3_stmt が Statement に相当するっぽい🤔
ResultSet は…ちょっとすぐ判らないお😞
とりあえずこの2つをメンバーに組み込んで open 処理を書いてみようず🤤

C 系は基本的に try で例外を拾うのではなく、関数を呼んだ時の返値や引数に状態やフラグを渡して、それを関数実行の後で確認して障害検知と対応を書く方式なので try を書かない傾向が強い😑
それはそれとして、なんか「その関数呼び出せないんだけど?」って言われるのよね🙄

………😞
QuickHelp は出てるのにどういう事なの…🙄

No matching function for call to エラー 原因別の対処方法
https://marycore.jp/prog/cpp/no-matching-function-for-call-to/

引数型が合っていないと呼び出せないのでエラーになる。

void fn(int v) {}

fn(99); // OK
fn(""); // No matching function for call to 'fn'

これかな🤔
sqlite3_open の記述は3記事とも &var になってて自分のは現状そうなってない😞
だって &self.conn って書くと怒られるんだもん🙄

雑な対応感たっぷりだけどこうするしかやりようがない😑
statement については実行毎にいちいち生成されるっぽいので nil 入れときゃ良いかな…🤤


次回は

やっとコンストラクタの先に進められる…😫

この記事が気に入ったらサポートをしてみませんか?