久しぶりで自作ハンディーターミナルアプリを改良中
[[ai]SQLite bulk Insert 500レコード制限が無くなってる!(2019/6/11)]
[[SQLite]Bulk insert最大レコード数は約270,000行(2020/5/29)]
今開発してるのは
SQLite versionでマスターファイル名を切り替る
対象ファイル名を
(最大数500行制限撤廃後)
version3.8.8以上なら1ファイル200,000行のbulk insertファイル名を指定(新規開発)
(version 3.8.8より古い場合)
1ファイル500行(現行システム用)bulkファイル名を指定する
これが思った以上に面倒なの!
開発中のコードがこれ
1:僕のPixcel 3a(=Android10)でsqlite_versionを実行
SQLiteの返事がこれ
(sqlite_version() 3.22.0)
2:バージョン以外の文字列を取り除くreplaceブロックで掃除
「(sqlite_version() 3.22.0」をNULL
「)」をNULL
これでバージョン部だけになりました
3.22.0
ここからがメイン処理部「バージョン比較」
version 3.8.8より古いの?新しいの?
文字列比較では
3.8.8>3.22.0になってしまう!
文字列3.8xxxは3.2xxxより大きいから
数値比較でも
3.8>3.22になり正しく動かない
試行錯誤を繰り返し完成したコードがこれ!
versionの1桁目と2桁目を別々に保存
別々に比較する
メインのIF文
1桁目を比較
ver.4以上なら200000行ファイル
ver.2以下なら500行ファイル
ver.3なら2桁目を比較
2桁目が9以上なら200000行ファイル
2桁目がそれ以外なら500行ファイル
SQLite versionが
3.8以前ならファイル名:master500.zip
3.9以上ならファイル名:master200000.zip
全部つないだコードがこれ
このコードをベースに、次は本アプリのソース書き換えです。
ベースプログラムがここまで完成してれば富士登山なら8合目!
ゴールは、もうすぐ!
その上でbulk insertファイル生成プログラム(ms-Access)の改造もしなければ・・・・
まだまだ、やることいっぱい!
余談ですが、なぜここ数日夜な夜な熱心にプログラミングしてると思います?
答え:痛風でアルコールが飲めなくなり夜もシラフだから
痛風、痛よ!
でも、お酒飲みたいな・・・