SWS
|
●Visual C++におけるmdbファイルの扱いについて、その2 注)この記事はWindows98 + Visual C++(SP2)上のみで確認しています。 その1ではレアにmdbを指定しレコードセットの操作も手作業的におこなったが、通常このようなときはCDaoRecordsetを専用に派生させて使うらしい。たまたま簡単なSDIプロジェクトが転がっていたので、派生させてみた(笑)。 ▼CDaoRecordsetの派生クラス作成 OKすると以下のようにデータソースを入れる画面になります。ここで、その1で作成したmdbファイルを指定する。次にテーブル名を聞いてくるので、適当に選択します。 これでOK!!専用のレコードセットクラスが完成しました。 ▼ソースファイルを見てみてみる ・TestRecSet.h
このような形で、データベースのフィールドにしたがった変数が自動的に定義されています。 ・TestRecSet.h
コンストラクタで、初期化しているようです。
ここで、mdbファイル名の指定をしています。きっと仮想関数なんでしょう。mdbファイル自身を移動させたいときは、ここのパスを変えれば良いのでは無いかと思われます。
そしてテーブル名がこれです。うまくできていますね。今回は元のプロジェクトを作成する際にデータベース関連のオプションをすべてOFFにして作成しました。このままですと、コンパイル時にDAO関連が無いといってこけてしまいます。stdafx.hに#include <afxdao.h>を追加しましょう。 ▼テーブルの変更時は?
先ほども出てきたデータベースのオプションダイアログが出てきますね。ここで、再びmdbファイルを指定してOKすると、 のように自動的に変数が追加されます。ここで、"すべてバインド"ボタンを押下と、メンバ変数を定義してくれます。 本当に追加されたかどうかをソースの中身を見てチェックしてみましょう。 ・TestRecSet.h
確かに、m_NEWDATAが追加されています。 ・TestRecSet.cpp
こちらもばっちりです。やるなゲ●ツ!!青い画面ばかり出してるわけじゃないんだな。というわけで、データベースのフィールド追加、削除などをおこなったときも、プロジェクト側で簡単に変数定義を変更することができます(削除時は同様の手順で、バインドする前に"変数の削除"をおこなえばOK)。これで安心してレコード操作の実験に入れます。。。では、今回はこの辺で。 |
|