毎年11月に行われる、PMI東京フォーラムへ参加することにした。2005年、2007年に続き3回目となる。
研究報告も然りだが、実践されたこと、はたまたプレゼンテーション方法についても勉強になる。ここで学んだモノを実践に取り入れたこともよくある。
また、初日の終わりにネットワーキングという交流会がある。初めて参加した年は外国人が多くなかなか交流しにくかったが、昨年は以前勤めていた会社の人、その後もオフ会などで交流した人もできた。今年もネットワーキングにも参加する。

昨年は豊洲界隈であったが、今年は神保町のかなり九段下寄り。家から近くなる分、参加しやすくなる。

以下、PMI東京フォーラム2008公式サイト
http://www.pmi-tokyoforum.org/pmi/forum-2008/index.html

なお、神保町界隈は意外と昼食に困るような気もするのだが・・。2005年もこの界隈だったのだが、神保町の書店街の方まで、時間も惜しいのでファストフードの丼屋へ行った。しかし味気ない。
今年はどこか良いところはあるかな?とは思っている。
Typeよりデータクラスの方が処理も含めて固まりにできる。
しかし、前回時点ではデータクラス間のコピーができなかった。今回はそれを解消する。

元ページはこちら

まず、標準モジュールでTypeをPublicで定義する。つまりクラスモジュールから出すのだ。
Public Type typeShohin
sCD As String
sName As String
lTanka As Long
dCreateDate As Date
End Type

次に、クラスモジュールに以下の処理を追記する。クラス内のTypeの定義のProperty Get と Let を作成する。

Public Property Let LocalType(typVal As typeShohin)
typ = typVal
End Property

Public Property Get LocalType() As typeShohin
LocalType = typ
End Property

最後に、元のモジュールでコメントで消した部分を次のように書き換える。

    typOut.LocalType = typIn.LocalType

これでTypeを拡張したデータクラスが作成できる。

このデータクラスだが、
・モジュール内だけのワーク
・モジュール間の共有
・データベースなど外部ファイルとのやりとり

で更なるアレンジがあった方がいいように思う。

データクラスは処理のフローでいえば枝葉の部類といえるだろう。処理が細かいものの、上位モジュールから使い勝手がよく、万一処理を追いたくなってもすぐに追い切れるくらいの内容にしておくとラクになる。
誤解がないように補足するが、データの入出力は処理の幹にあたる。しかし、取り込んだデータをどのように保持するかは枝葉である。

こんなクラスを手書きでいちいち作っているのも面倒だし間違いも多くなるので、Typeの定義からデータクラスを作成するツールも考えている。



クルーズさんのブログ より


>これまでのADOなどでは更新の処理の時は多くの場合は一件ずつ更新という感じが多いのではなかったのではないかなと思っています。(思い込みです)

>それに対してADO.NETは非接続タイプですので、例えば表形式で表示しているデータの更新するところをクライアントPC内でユーザがすべて書き終えたら、更新ボタンを押すなどして一気にDBに対して更新処理をするということです。

>使いやすいか?という点においては、自分では使いやすいのかなと思っております。


そう、ADO.netは「非接続」なのである。この考え方自体は賛同できる。同時に多人数がデータを取得してもサーバーへの負荷は小さくなるからだ。私自身もサーバー負荷を懸念し、ADOを使いながらも非接続し、加えてアルゴリズムで排他制御を行っていたことはある。


今のところ、ADO.netを用いた場合、排他制御はどう考えればいいのか、よく分からないで居るからだ。例えば、更新系でも「早い者勝ち」「最終更新が有効」「利用中は他の人は閲覧のみで更新不可」など、選択したい場合もある。これがA

DO.netではパラメータ等で設定できるのか、対応していないならどういうアルゴリズムを作り込めばいいのか、私自信が調べ切れていない。(実務でADO.netを敢えて利用していないからだが。)


この排他制御をどこで吸収するか、重要なポイントであろう。