只求思想,不求实现解决办法

只求思想,不求实现
问题描述:
假设,数据库中有一设备表,这个表有十几到几十个字段.
都是设备的参数了,属性了,等等(这些有整数,有字符串,长短,类型都不全一致).在编程中,
总不能老查DB吧,好了,设计一个类(或是结构体),
struct device{
...
...
...
};

里面有DB里的所有属性,每个属性是结构体中的一个变量.
问题出来了.读DB的话,select x,x,x,x,x,x......from device where xxx;
然后把所有属性一个一个赋值到device结构体中.这一个一个赋值也太.....
几十个字段,就得写几十行代码,太不智能了.能明白我的意思吧?虽然是这个封成函数了,
所以的取DB都可以调这函数,但就是一个读DB赋值,就得几十行代码,而且全是
dev.xxx=atoi(xxx)
memcpy(dev.xxx,xxx,sizeof(dev.xxx));
....

这种代码看的我是实在不爽.求优化思想.谢谢.

------解决方案--------------------
想把数据换为本地数据,你还真得这么干
------解决方案--------------------
这个无法避免 

不知道面向对象的数据库能够解决你的问题(还没研究过)
------解决方案--------------------

你要的就是反射。可惜c++标准里还不支持这个东西。非标准的到是有几个库,比如reflex。

在java,c#都有成熟的技术支持反射。要么你考虑一下?

c++的反射,可以参考一下下面的链接:
http://root.cern.ch/drupal/content/reflex
------解决方案--------------------
java的话都是用现成的ORM工具,看看C++有没有ORM就是了。
ORM = Object-Relation Mapping,对象到关系的映射。也就是把C++对象与关系型数据库进行某种关联。