CORBA返回数据集老是报 Invalid data packet. 内有代码!!!!! 救命!!! ( 积分: 200 )

  • 主题发起人 主题发起人 Tony_comm
  • 开始时间 开始时间
T

Tony_comm

Unregistered / Unconfirmed
GUEST, unregistred user!
是对照BCB6自己带的例子做的,例子完全正常运行,而我的确不行,
BORLAND 还是很厉害的!!!!!!!

server:
CORBA::Any* HOBServerImpl::GetCustomers(CORBA::Boolean _metadata)
{
dm->CustomerQuery->Close();
dm->CustomerQuery->Open();
TProvider * p = new TProvider(NULL);
p->DataSet = dm->CustomerQuery;
CORBA::Any_var any = SAFEARRAYToAny(p->Data);
delete p;
return CORBA::Any::_duplicate(any);
}
client:
CORBA::Any_var anyData = hOBServer->GetCustomers(true);
OleVariant varData = AnyToSAFEARRAY(anyData);
dm->ClientDataSet1->Data = varData;
<----------此句报错
//dm->ClientDataSet1->Open();
 
是对照BCB6自己带的例子做的,例子完全正常运行,而我的确不行,
BORLAND 还是很厉害的!!!!!!!

server:
CORBA::Any* HOBServerImpl::GetCustomers(CORBA::Boolean _metadata)
{
dm->CustomerQuery->Close();
dm->CustomerQuery->Open();
TProvider * p = new TProvider(NULL);
p->DataSet = dm->CustomerQuery;
CORBA::Any_var any = SAFEARRAYToAny(p->Data);
delete p;
return CORBA::Any::_duplicate(any);
}
client:
CORBA::Any_var anyData = hOBServer->GetCustomers(true);
OleVariant varData = AnyToSAFEARRAY(anyData);
dm->ClientDataSet1->Data = varData;
<----------此句报错
//dm->ClientDataSet1->Open();
 
结果集没有传给varData;或者是返回的结果集为空
 
在服务器端show记录个数是有的,
OleVariant varData = AnyToSAFEARRAY(anyData);
就是把集传递给varData
顶。
 
问题已经完全解决,在project->options->dir->conditions 中设置转换选项,详细参看BCB6带的例子。
 
接受答案了.
 
后退
顶部