从DB中选择客户信息并存储到矢量中

时间:2013-09-04 23:40:45

标签: c++ sql-server-2005

好的,所以我需要知道如何从21岁的数据库中选择所有人并将他们的信息存储到一个向量中,以便我可以将其渲染到我的程序中的列表中

SELECT Name, Age, State FROM ACCOUNT_DBF.dbo.CLIENTLIST Where Name=tom

while( qry->Fetch() )
{    
    Name    =    qry->GetInt("Name");
    Age    =    qry->GetInt("Age");
    State    =    qry->GetInt("State");
}

我有上面这样的东西来获取一个人的信息 我知道这适用于从一个人那里选择信息,但是为了选择所有21岁的人我不明白如何将其存储到矢量中我在获取后做了什么我创建了以下结构

struct CURRENT_MEMBER
{
    TCHAR Name[MAX_NAME];
    int age;
    int state;
};

我需要它存储在像这样的载体中

Tom 21 50

能够将所有客户端呈现为滚动列表框

jane 21 15
max 21 25
Tom 21 50
sara 21 5

2 个答案:

答案 0 :(得分:2)

您需要使用数组 更多信息here 如果您想要更具体的代码示例,请注释详细信息。

CURRENT_MEMBER Members [MAX_MEMBER_COUNT];

for (int i=0; i<nMemberCount; i++)
{
    Members[i].Name= <info from DB>;
    Members[i].age= <info from DB>;
    Members[i].state= <info from DB>;
}

答案 1 :(得分:0)

您是否尝试过这样的事情(如果您真的想使用矢量)?

public class Member
{
    TCHAR Name[MAX_NAME];
    int age;
    int state;

    //for vector::push_back to work (pass by value)
    public Member(const Member& other)
    {
        Name = new TCHAR[MAX_NAME];

        for(int i = 0; i < MAX_NAME; i++)
        {
            Name[i] = other.Name[i];
        }
        age = other.age;
        state = other.state;
    }

    public Member(TCHAR ar[],int a, int st)
    {
        Name = new TCHAR[MAX_NAME];

        for(int i = 0; i < MAX_NAME; i++)
        {
            //careful!
            Name[i] = ar[i];
        }
        age = a;
        state = st;
    }
}

...

   vector<Member> yourVector = new vector<Member>();

   while( qry->Fetch() )
   {    
       yourVector.push_back(new Member(qry->GetInt("Name"), 
          qry->GetInt("Age"), qry->GetInt("State"));
   }