我写了一个添加一条记录的函数如下:
void AdoSaveCarInfo()//保存信息
{
_RecordsetPtr Recordset;
_variant_t RecordsAffected; _variant_t vId,vbatholith_mode,vbatholith_number,vengine_mode,
vengine_number,vout_number,vbatholith_checker,vbatholith_date,vcheck_out_number,
vcar_mode,vcar_checker,vcar_date,vfell_car_man,vtime,
vcar_color,vgear_box,vbody_mode,vcar_body_number,vcar_in_depot,
vselect_shape,vair_condition,vCCC_number,vcar_standard;//,vAddress,vTelephone,vTestcode;
//信息索引
vId = (long)mydata._communication.id;
//选择备注
      。 CString szSQL;
szSQL.Format("SELECT * FROM 信息 WHERE 代码 = %d",mydata._communication.id);

try
{
Recordset.CreateInstance("ADODB.Recordset");
Recordset->Open((_bstr_t)szSQL,_variant_t((IDispatch*)m_pConnection,true),adOpenDynamic,adLockOptimistic,adCmdText); Recordset->AddNew(); vId = Recordset->GetCollect("代码");

if(vcar_mode.vt!=NULL)
Recordset->PutCollect("成车型号ID",vcar_mode);
Recordset->Update();
Recordset->Close();
}
catch(_com_error e)///捕捉异常
{
AfxMessageBox("读取数据库失败!\nAdoSaveCarInfo()");///显示错误信息
}
}
我在一个单击时间里调用这个函数
CString sz,szDlgCaption="输入错误";
//CInpotdata dlg;
UpdateData(TRUE);
bool id = true;

if(m_select_shape.GetLength()==0)
{
MessageBox("选装备注不能为空!     \n请输入选装备注!",szDlgCaption,MB_OK|MB_ICONSTOP);
::SetFocus(GetDlgItem(IDC_SELECT_SHAPE)->m_hWnd);
return 0;
}
strcpy(mydata._communication.select_shape,m_select_shape);           。 AdoSaveCarInfo();//保存信息
         UpdateData(FALSE);
return id;
}
对同一条信息每单击一次数据库里就会保存一条相同的信息,而我只想保存一条就可以了,怎么改啊?