arx中,调用ACCESS,为何总是出现 “系统内存不足”的错误?

来源:百度知道 编辑:UC知道 时间:2024/06/01 11:30:42
arx中,调用ACCESS,为何总是出现 “系统内存不足”的错误?
高手请帮忙分析一下:

CDaoDatabase db ;
CDaoTableDef tableDef(&db) ;
CDaoRecordset rs;

db.Open ("./qy.mdb") ; //为什么总在这步的时候出错,系统内存不足?
//这段代码不在arx中的时候可以正常调用,我将ACCESS改为txt文件 调用,同样出现刚才的问题 请问是什么原因啊?

你自己已经解决了

这样就可以了,

void CAddBlock::OnOK()
{

CDialog::OnOK();
//获得要插入的块名
CString blockname;
m_listctrl.GetLBText(m_listctrl.GetCurSel(),blockname);

//blockname = "CHART-20";

//寻找是否已经定义
AcDbDatabase *pCurDb = acdbHostApplicationServices()->workingDatabase();
AcDbBlockTable *pBlkTable;
AcDbObjectId blockId ;
pCurDb->getBlockTable(pBlkTable, AcDb::kForRead);

if(!pBlkTable->has(blockname))
{
pBlkTable->close();
AcDbDatabase *pDwg =new AcDbDatabase (Adesk::kFalse) ;
char dir[MAX_PATH];
GetModuleFileName(NULL,dir,MAX_PATH);

dir[CString(dir).ReverseFind('\')]='\0';
//AfxMessageBox(CString(dir)+"\\survingpack\\"+blockname+".dwg");
pDwg->readDwgFile (CString(dir)+"\\survingpack\\"+blockname+".dwg") ;