2018年4月27日金曜日

Accessアクセス from VB ~Class化してみるよ~(7:あとがき)

なんか、VBAでも使い回しできるようにと思ってVB選んだのに、VBA(VB6準拠?)と、VB.NET(?)じゃ、いろいろ違ってぽん載せできないじゃないか( ゚-゚)~゚

このClassでは、DBの内容を一気にテーブルに引っ張ってきている。
そのため。ドでかいデータを引っ張ってきちゃうと大変なコトになるかもしれない。

ConnectionString 引数をそのまま渡しているので、テーブル名の指定だけでなく、SQLを渡してSELECT文にORDER BYつけてSortさせたり、取り込むFieldを指定できたりもします。

そんなわけで、
現状わからない点

変数(引数)の状態の検査
 →Stringの場合、Nothingと比較するのが適当ぽい。
  Ifを用いる場合は、""と変わらない動作をする(ちからのテスト範囲内では)。
  ちなみに""とvbEmptyとかを見分けるには、StrPtr()を使うといいらしい( ゚-゚)~゚

 設定されていないとか、各種Nullとか文字列に0とか、
 そういう状態を検知するのはどういう方法が確実なんだろうか。
 とりあえず、Open Methodの中で、Nothing、vbNullString、vbEmptyと比べる
 なんてコトをしてみたが、困ったことに全て期待通りに動いちゃってるので…
 isなんちゃら~でもやってることは一緒だろうし。

引数の省略の仕方
 Optionalで、hoge(,1)という書き方は出来た。
 しかし、”第一引数が省略されている”ことが、Overrideで感知できないので、
 今回の実装は諦める。

 多分できると思うんだ。
 hoge(,1)のように、設定の必要がないとか、ソレで別の動きをさせるための書き方。
 Datas()を、オーバーライドで、引数2つで要素(i,j) as String を返す、
 1つだとRecord(i) as String ()を返すギミックを仕掛けたのだけど、
 Datas(,1)と呼ばれたとき、Column(1) as String()を返すよーなコトをしたい。

 …とおもたら、Optionalをみつけた。そのうち試す(ぇ

Methodへの引数の検査
 今回、INDEXとして、数値を渡すのだけれども、ソレが範囲外だった場合、
 VB的にはどんな動作が”普通”なんだろうか。
 チェックし、その場でエラー吐いて全プログラム終了させるか、
 チェックせずOSやコンパイラに任せて実行時エラーを吐かせるのか。
 はたまたゆるいVBらしく、0や最大値に勝手に変更するとか(笑
 とりあえず今回は、INDEXに関するあたりのチェックはしない方向で簡略化した。

ToDo
 Optionalの動作確認【済】
 連想配列(使えるのか?)で、Record(1,"Field名")みたいにしてデータ参照するとかとか
 …SELECT文で呼ばれたときの処理がめんどちいか( ゚-゚)~゚
 DB接続まわりのエラーチェック細分化。
 変数未設定の検出【済】

 こんなもんかな( ゚-゚)~゚


<<前  次>>

0 件のコメント:

コメントを投稿