最終更新日: 1998年 08月 21日 金曜日
ADOを利用すると簡単にDataBaseが利用可能ですが、その利点と使用法はどういった
ものになるのでしょうか? ネットワークDB等が多くの話題にのぼっていますがどういういった
使い方をすればよいのか悩む方も多いと思います。こういった技術は本で学ぶより実際に
実地を行った方が早いので実験&検証してみました。IIS4+ASPからもアクセス
の実験を検証していましたので参考にしてください。
以下に、動作検証用のコードを2種類記載しました。
この方法ではODBCをDSNを使用しないため、ODBCに対して登録せずに動作します。また、ODBCを使用しないことから、ローカルディレクトリにゴミがたまる等管理が面倒になる可能性もありますが、MDBファイルを使用するのであればもっとも簡単ではないでしょうか。また、ファイルの共有や競合問題もOpenする段階で決定でき、今回は検証用のプログラムのため省略しましたが、TRY/CATCHでエクセプションをスルーして処理することで適切な処理が望めます。
#include <afxdao.h>
int CJETDB1View::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
if (CView::OnCreate(lpCreateStruct) == -1)
return -1;
// TODO:
この位置に固有の作成用コードを追加してください
remove("MyDatabase.mdb"); //
以前のファイルを削除
CDaoDatabase db;
// DAODataBase オブジェクト生成
db.Create("MyDatabase"); //
ファイル新規作成
CDaoTableDef table(&db); //
テーブルオブジェクト生成
table.Create("SampleTable"); // テーブル作成
table.CreateField("ID", dbText, 255, dbVariableField);
//
テーブルにフィールド生成
table.CreateField("IDNAME", dbText, 255, dbVariableField);
// テーブルにフィールド生成
table.CreateField("Name", dbText, 255, dbVariableField);
// テーブルにフィールド生成
table.Append();
// フィールドをテーブルに関連付ける
CDaoRecordset rs(&db);
// レコードセットオブジェクト生成
rs.Open(&table,dbOpenDynaset,0); //
レコードセットオブジェクトをオープン
rs.AddNew();
// 新規レコードセット代入準備
short sFieldCount = rs.GetFieldCount(); //
テーブル内のフィールドの数を修得 ここでは使用していない
rs.SetFieldValue("ID","0");
// サンプルデータ代入
rs.SetFieldValue("IDName","kitaro");
// サンプルデータ代入
rs.Update();
// レコードセットをアップデート
rs.Close();
// レコードセットオブジェクト解放
db.Close();
// データベースオブジェクト解放
return 0;
}
#include "msado15.h"
VARIANT HelloWorld::TestADO1()
{
CString strResult;
// TODO: ここにディスパッチ ハンドラ
コードを追加してください。
CDaoDatabase db;
// データベースを作成します。
db.Create("MyDatabase"); // DataBaseはカレントディレクトリ (C:\
など)に作成されます
CDaoTableDef table(&db);
table.Create("SampleTable");
// テーブルをコレクションに追加するには、少なくとも 1
つの
// フィールドが定義されている必要があります。
// 可変長のテキスト
フィールドを作成します。(テキストのみ)
table.CreateField("ID", dbText, 255, dbVariableField);
table.CreateField("IDNAME", dbText, 255, dbVariableField);
table.CreateField("Name", dbText, 255, dbVariableField);
table.Append(); // テーブルを Tables
コレクションに追加します。
db.Close();
strResult = "<h3>DataBase作成しました<h3>";
return (COleVariant)strResult;
}
Copyright (C) Kitaro 1998