![]() |
【转帖】issues with deleting groups
issues with deleting groups
issues with deleting groups i'm using version 1.12, and i'm having issues deleting groups. it's giving me a "pure virtual method called" error. i'm able to output data from the group record, so i don't believe its because the record is null. is there something i'm missing? here's a code snippet: int breakgroup(oddbdatabaseptr pdb, oddbgroupptr & group, list<oddbentityptr> & entlist){ if(!group.isnull()){ cerr<<"breaking group"<<endl; //get ids in the group oddbobjectidarray ids; int numents = group->allentityids(ids); //convert each id into an entityptr for(int x=0; x<numents; x++){ entlist.push_back(ids[x].safeopenobject(oddb::kforwrite)); } //kill the group cerr<<group->description()<<endl; group->clear(); group->erase(); return entlist.size(); } return 0; // nothing there } thanks, chuck still having issues the error specifically occurs at: group->clear(); i've done some further checking, and have verified that both the group, and all of its entities exist.... is there some way i can get to the underlying blob info to do some further investigation? thanks can you post a file, where you are having this problem? i cannot reproduce it. vladimir issue resolved i was working on putting togeather an example file for you when i discovered the source of my problem. it turns out that it was not clear whether or not the group was open for write in code outside this function. this is due to me using stl lists to pass around group pointers rather than passing ids (and forcing myself to open the entity when i'm using it rather than passing it in as an objectptr). removing all uses of stl lists in my code in favor of oddbobjectidarray, and calling safeopenobject when i specifically need the use of an item in the list appears to have resolved the issue. thanks, chuck |
所有的时间均为北京时间。 现在的时间是 11:18 PM. |