为什么"db.Open""rs.Open"中的“." 不能引出一串对象,解决方案
为什么"db.Open","rs.Open"中的“." 不能引出一串对象,
我的函数是可以运行的阿,只是 "db.Open ", "rs.Open "中的“. " 不能引出一串对象,
为什么?
void appRotateAllArc()
{
EB_SELECT res,result,result1;
EB_NODE block;
EB_POINT pos,p1,p2;
int stext;
char* epath=NULL;
CString cfilepath,STANDARD;
cfilepath=ebGetCurrentFileName();
CDaoDatabase db;
db.Open(_T( "d:\\cpstest.mdb "));
CDaoRecordset rs(&db);
rs.Open(dbOpenDynaset,
_T( "Select [full_text] FROM Standard "));
while (!rs.IsEOF())
{
rs.MoveNext();
}
rs.Close();
db.Close();
p1.x=p1.y=0.0; // 给起点坐标赋值
p2.x=p2.y=20.0; // 给终点坐标赋值
pos.x=pos.y=1.0;
block=eb_BuildLinearDim(0, p1, p2, pos, 0, NULL, '1 ');
ebInsNodeToSys(block);
if(ebIfSelectEmpty(SysEntBase)) // 判断系统图形数据库是否为空
return ;
int num=ebGetSelectLength(SysEntBase);// 得到系统图形库中的结点个数
for(int index=0;index <num;index++) // 对系统图形数据库进行遍历
{
// 从选择集中提取结点
EB_NODE node=ebGetObjectFromSelect(SysEntBase,index);
//EB_NODE node1= ebGetNodeFromBlock (node ,128);
// 将系统图形数据库中的所有圆弧添加到选择集res中
stext=ebGetNodeType(node);
if(ebGetNodeType(node)==32)//128)//32
//int num1=ebGetSelectLength(node);
ebAddObjectToSelect(res,node);
ebGetNodeChildList(node,result1);
}
pos.x=pos.y=0.0;
if(!ebIfSelectEmpty(res))
{
ebRotateSelect(res,result,pos,PI); // 对选择集进行平移变换
ebFreeSelect(res); // 将不用的选择集删除掉
// 将旋转变换结果送入系统图形库但暂时不删除选择集
ebInsSelectToSys(result,FALSE);
ebDrawSelect(result,C_BLUE); // 用蓝色画选择集
ebFreeSelect(result); // 释放选择集
}
}
------解决方案--------------------
关闭工程,删除NCB文件,打开工程即可。
我的函数是可以运行的阿,只是 "db.Open ", "rs.Open "中的“. " 不能引出一串对象,
为什么?
void appRotateAllArc()
{
EB_SELECT res,result,result1;
EB_NODE block;
EB_POINT pos,p1,p2;
int stext;
char* epath=NULL;
CString cfilepath,STANDARD;
cfilepath=ebGetCurrentFileName();
CDaoDatabase db;
db.Open(_T( "d:\\cpstest.mdb "));
CDaoRecordset rs(&db);
rs.Open(dbOpenDynaset,
_T( "Select [full_text] FROM Standard "));
while (!rs.IsEOF())
{
rs.MoveNext();
}
rs.Close();
db.Close();
p1.x=p1.y=0.0; // 给起点坐标赋值
p2.x=p2.y=20.0; // 给终点坐标赋值
pos.x=pos.y=1.0;
block=eb_BuildLinearDim(0, p1, p2, pos, 0, NULL, '1 ');
ebInsNodeToSys(block);
if(ebIfSelectEmpty(SysEntBase)) // 判断系统图形数据库是否为空
return ;
int num=ebGetSelectLength(SysEntBase);// 得到系统图形库中的结点个数
for(int index=0;index <num;index++) // 对系统图形数据库进行遍历
{
// 从选择集中提取结点
EB_NODE node=ebGetObjectFromSelect(SysEntBase,index);
//EB_NODE node1= ebGetNodeFromBlock (node ,128);
// 将系统图形数据库中的所有圆弧添加到选择集res中
stext=ebGetNodeType(node);
if(ebGetNodeType(node)==32)//128)//32
//int num1=ebGetSelectLength(node);
ebAddObjectToSelect(res,node);
ebGetNodeChildList(node,result1);
}
pos.x=pos.y=0.0;
if(!ebIfSelectEmpty(res))
{
ebRotateSelect(res,result,pos,PI); // 对选择集进行平移变换
ebFreeSelect(res); // 将不用的选择集删除掉
// 将旋转变换结果送入系统图形库但暂时不删除选择集
ebInsSelectToSys(result,FALSE);
ebDrawSelect(result,C_BLUE); // 用蓝色画选择集
ebFreeSelect(result); // 释放选择集
}
}
------解决方案--------------------
关闭工程,删除NCB文件,打开工程即可。