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で漢字が入力でき...
-
ことの始まりは「 マイクロコンピュータのプログラミング bit '78 」なのだ。 この書籍ではモニタプログラム、エディタ、アセンブラ、tinyBASIC、μPLANが紹介されている。 やはり8bitcpuを自在に使いこなすことに憧れがある。 そしてFDDを使った...
-
今年はずいぶんおかしな一年であった。 って年の瀬のような書き出しだが昨年11月末に持病が見つかってから1年間、治療、身内の特殊事情、9月の事故と結構な綱渡り もう残りの2ヶ月くらいは平穏に過ごせることをひたすら願う そしてこのページにもっと退屈しのぎ的な戯言を書き綴りたいもので...
-
Q. 上の 20×20 の格子のうち, 斜めに並んだ4つの数字が赤くマークされている. 08 02 22 97 38 15 00 40 00 75 04 05 07 78 52 12 50 77 91 08 49 49 99 40 17 81 18 57 60 87 1...