下面的代码只是把查询的一条记录,存入一个字符树组中;
现在要把一张数据表的某列(整数值)所有值,
填充到一个结构体中,不用再多次查询数据库;
请大家帮忙看下如何修改///////////////////////////////
int db_query_fetch(DB_QUERY_INFO *pquery)
{
  HRESULT hr;
  int i=0;  CheckErr(pquery->pdb, (hr =OCIStmtFetch( pquery->m_hpSelect,
pquery->pdb->m_hpErr,
1, // 'nrows' i.e. max rows
OCI_FETCH_NEXT, 
OCI_DEFAULT )));  // Set result to 0 if no data returned
  if ( SUCCEEDED(hr) && hr != OCI_NO_DATA )
  {
    pquery->RecCount ++;
    for(i=0; i<pquery->FieldCount; i++)
    {
      pquery->FieldValues[i][pquery->m_BindFields[i]->wLen] =0;
      del_lr_spaces(pquery->FieldValues[i]);
    }
  }
  else if(hr ==OCI_NO_DATA)
    return 0;
  else return -1;  return 1;
}
///////////////////////////////
char *get_field_value_by_name(DB_QUERY_INFO *pquery, char *field_name, char *buf)
{
int i=0;
  *buf =0;
  if(field_name ==NULL) return NULL;  upper_case(field_name);
  for(i =0; i<pquery->FieldCount; i++)
  {
    if(!strcmp(field_name, pquery->m_BindFields[i]->name))
    {
      strcpy(buf, pquery->FieldValues[i]);
      return buf;
    }
  }
  return NULL;
}
///////////////////////////////

解决方案 »

  1.   

    根据有限类别,建立结构体,将查询到得相应类别的数据,依次填充结构体。超限报警。或者自动覆盖旧数据。
      

  2.   

    我说个思路,你自己实现吧!声明结构体,或结构体数组
    1.查询一次, 记录集中就保存了 符合条件的所有记录
    2.遍历记录集,从中读取每条记录,并设置标记记录记录的索引
    3.根据标记,把每条记录放入结构体,或结构体数组中。ok啦。