2020年8月30日日曜日
遊ばなきゃ!~デジタル小物を愛でる
2020年8月14日金曜日
Excelでデータベース ~ 或いは今更のADO ~
最近Excelを扱うプログラムをいくつか書いた
で、Excelでデータベースが扱えたら便利な気がした。
思い出したのがadodbを使えば楽にSQL構文でいろいろなデータソースを扱えるということ。
※そもそもaccessのVBAで書いていたころはあまりスピードも変わらなかったし別のリソースを読みこむということもなかったのでadoを使わず専らdaoを使っていた。フィールド名などのデータ構造もdaoであれば一元で扱えた。adoだとadoxが必要になる
で、recordsetの扱いとしては比較的似たコードになるとはいえ今更ながらのado入門(正確には最初にどちらかにするために弄ったときに一通りは書いたので再入門)を果たすこととなった。
こちらのサイトなどを参考にさせていただきつつExcelでいくつかの条件を付けてSQLを流してシートに抽出するマクロを用意した。
元データとしては「なんちゃって個人情報」さんで5000行のcsvを利用
いろいろと条件を変えつつベンチをとってみたがどうしても単一のテーブルからwhereで条件をつけてデータを抜くような単純なものになるので結構実行速度は速かった。またそのような使い方ではデータベースソースを置く媒体(SSD,HDD,NAS,USB,MO)でさほど速度も変わらなかった。
(例外的にMOでだけaccdbが遅くなったがもっとも複雑な構造なので遅い媒体上では不利なのかもしれない。)
皮肉なものでaccessでCOMを使って裏でexcelを起動してxlsxのファイルなどを作成・更新する時間が惜しいので速くなる方法を調べていてtransferspreadsheetに行き着いたんだけどc#ならclosedXMLでexcel無しに直接ファイルを操作できるので速いのにって調べているうちに小さなシステムで顧客の各PCにはaccessはないのだしexcelのファイルをexcelのマクロで扱う方が起動時間の分速くなるかなって思って考えているうちに今回の仕儀とあいなりました。こういう情報もあることだしexcelである程度まとまったデータはadoで扱おうと思う。
dosvaxj3が更新されていた。
最近、エミュレータ系をあまり触っていなかったのだけど久しぶりに見てみたらタイトルのようにdosvaxj3が更新されていた。 on emulatorでセルフにcなどのソースを書いて実行するのに母艦側の特定のフォルダをドライブとしてマウント出来たり普通に母艦のimeで漢字が入力でき...

-
sixelでターミナルに画像を出すというのをやってみた。 Github-libsixel を利用した。 これがもとの画像 そしてgnome端末がsixelに全く対応しないのでxtemを入れて 上記のlibsixelおすすめのoptionで起動...
-
本日 (18/08/22) ubuntuを再インストールした 理由はスリープやシャットダウンが効かなくなってしまったから 詳しい原因は不明だが理屈もわからずにapt -getやらしすぎたのかも で再インストールは恐ろしく簡単だった。 再インストールが30分ほどでデータ...
-
調べてみたらubuntu付属のRemminaでWindowsPC(Proのみ?)にリモート接続できることがわかった。 Express5800に接続してみたが快適 ubuntuのWinXPではUSBメモリーの接続がうまく行かないがこれで開発を継続できる 明日はこの辺りを解決...