前提是最基本的数据操作层已经有了,如:exec(CString sql)函数可以直接执行sql语句
例如现在定义了这样的一个对象
class A
{
public:
A();
virtual ~A();
protected:
int m_id;
CString m_name;
double m_hight;
double m_width;
}
然后再定义一个类来对上面的类的属性进行数据库的操作
class DalA
{
public:
DalA();
virtual ~DalA();
public:
bool Insert(A* a);
bool GetModel(A* a,int id);
}
在主函数中
int main()
{
A *a=new A();
a->m_id=4;
a->m_hight=1.256;//这里只给两个属性赋值
DalA *dala=new DalA();
dala->Insert(a);
return 0;
}
插入数据库后要求这样的效果
id name hight width
4 null 1.256 null
1.A中的属性怎么初始化?
如:可以给数值型的赋0,给字符串赋_T("")2.Insert(A* a);怎么实现,提供思路即可。反过来。用bool GetModel(A* a);得到一个A对象的时候,在GetModel()中怎么给a的属性赋值
如:可以判断如果name是null可以赋_T(""),width是null那么赋什么呢?
int main()
{
A *a=new A();
DalA *dala=new DalA();
dala-GetModel(a);
return 0;
}
不知道说明白了不

解决方案 »

  1.   

    不知道你具体使用过数据库没有?
    ms-sql或者Access等。在这些数据库提供的客户段接口处进行数据库操作。
    例如:建库,建表,以及表数据增加删除和查询。
    理解了以上操作之后,再考虑用程序实现可以使用数据库本身提供对C++接口也可以考虑使用ODBC来实现。
      

  2.   

    class A
    {
    public:
    A()
    {
    m_id=0;
    m_name=_T("");
    m_hight=0.0;
    m_width=0.0;
    }
    virtual ~A();
    protected:
    int m_id;
    CString m_name;
    double m_hight;
    double m_width;
    };
      

  3.   

    不好意思,第一句话没看到~||
    那就把你需要调用的SQL语句发送给底层的数据库操作就行了。是不是数据库的返回值获取的问题?
      

  4.   

    俺现在不就是不知道Insert(A* a)中不知道咋凑sql字符串吗?
    如果这样:(假设我有取得属性的get和set方法了)
    CString sqlInsert;
    sqlInsert.Formt(_T("Insert into table (id,name,hight,width) value (%d,'%s',%f,%f)"),
    a->GetId(),
    a->GetName(),
    a->GetHight(),
    a->GetWidth(),
    );
    这样的语句得不到下面的效果
    id name hight width
    4  null 1.256 null
      

  5.   

    请各位帮忙看看:
    http://community.csdn.net/Expert/TopicView3.asp?id=5748221
      

  6.   

    id name hight width
    4 null 1.256 null那么sqlInsert.Formt(_T("Insert into table (id,name,hight,width) value (%d,NULL,%f,NULL)"),
    a->GetId(),a->GetHight());
      

  7.   

    参看 www.codeproject.com对你应该有很大的帮助