前回、ADOで販売管理プログラムの一部を書き直してみて、VPN経由で速くならないかやってみたが、それほど速くならなかった。あきらめて、ChromeDiskTopを使うことにした。
今回プログラムの別の部分でグルグル廻しで編集テーブルを作成しているところをADOで書き直した。
一明細づつ処理している部分をADOを使ってSQLで一括処理するのでかなり速くなった。10秒くらいかかっていた開いていた画面がほぼ、一瞬で開くようになった。
この部分は10年くらい前、作ったところで、その頃はクエリービルダーでSQLを作るのが精一杯だったり、画面そのものの構成をどうするかということもあって、動作速度までもとめていなかった。
今回、ディスプレイが14インチ(当初はこの画面サイズでフォームを作っていた)から24インチに変わったので画面を見やすくしようと手直しをしている中、あまりにも遅いので手直しした。
それほど、複雑な処理ではなかったのだが、クエリービルダーで作ったクエリーの中で別のクエリーを呼び出していて、作成当時は副クエリーの書き方を知らなかった。この部分をクエリー一発で書き換えようとすると、Accessの貧弱なクエリーだとサポートしていかなかったりして、ADOでPostgreSQLのクエリーで書くことにした。
ADOなので編集テーブルはPostgreSQL内に作って、今、使っているAccess内の編集テーブルに全コピーする。
その編集テーブルもAccessからPostgreSQLへエクスポートしてしまえば、createする必要もない。
副クエリーの部分は「With as 」を使った。Accessで副問い合わせしていたところを、SQL表示にして貼り付け。withのテーブル名はAccessのクエリー名のまま。
あっさり修正が完了。
スピードを求めてADO化しようと思っていたが、ADOならPostgreSQLの充実したクエリーが使えるのですごく便利。
ーーーーーーーーーーーーーーーーーーーーー
Copilotってすごい。以前なら、「ここはどう書けばいいのだろう?」とか「別の書き方がないもんかな?」とか思ってもホームページを渡り歩いて、結局、「よくわからない」ってことも多かったけど、今はCopilotで調べるとサンプルプログラムまで表示されて、どうかすると、そのまま貼り付けてFunctionにしてしまえばよかったりする。
便利な世の中になったもんだ。もう、仕事すること期間も数年しかないけど、今からプログラムを書く人がうらやましい。わからないことを調べる時間がメチャメチャ短くなった。プログラムも直ぐかける。