这个应该是最开始的想法,首先定义好访问时候使用的数据结构,使用三个abstract class做为接口,各个层次的访问代码如下:
// 抽象类
struct iDataSet
{ ...
};
struct iTable
{ ...
};
struct iRow
{ ...
};
// 中间层的访问代码
iDataSet *pds;
iTable *ptbl;
iRow *prow;
boost::viriant<...> var;
....
ptbl = pds->get_table("table_one_name");
prow = ptbl->get_row(1);
var = prow->get_field("first_field_name");
// 客户端的访问代码
implDataSet ds;
implTable tbl;
implRow row;
...
tbl = ds["table_one_name"];
row = tbl[1];
var = row["first_field_name"];
看起来有点象是ado.net里的结构 :)
// 抽象类
struct iDataSet
{ ...
};
struct iTable
{ ...
};
struct iRow
{ ...
};
// 中间层的访问代码
iDataSet *pds;
iTable *ptbl;
iRow *prow;
boost::viriant<...> var;
....
ptbl = pds->get_table("table_one_name");
prow = ptbl->get_row(1);
var = prow->get_field("first_field_name");
// 客户端的访问代码
implDataSet ds;
implTable tbl;
implRow row;
...
tbl = ds["table_one_name"];
row = tbl[1];
var = row["first_field_name"];
看起来有点象是ado.net里的结构 :)