调用线程时出现奇怪错误,附上源码,请多指教。(200分)

  • 主题发起人 eyesmoke
  • 开始时间
E

eyesmoke

Unregistered / Unconfirmed
GUEST, unregistred user!
使用了Midas,
在中间层的DataModule中
bool Tdm::InsertMatchCode(Variant code,Variant person)
{
//TODO: Add your source code here
ITvt1PaintDisp AdhcServ;
__try{
if (!DCOMConnection1->Connected)DCOMConnection1->Connected = true;
AdhcServ.Bind(dm->DCOMConnection1->GetServer());
AdhcServ->InsertPsp(code,person);
}
__finally
{
if (AdhcServ.IsBound())AdhcServ.Unbind();
}
}
在Server程序中
STDMETHODIMP TTvt1PaintImpl::InsertPsp(VARIANT c_all, VARIANT person)
{
AnsiString sql;
int i,ret;
sql="insert into psp(id,c_all,person_match) values (psp_id.nextval,";
sql+=AnsiString("'")+AnsiString((Variant)c_all)+AnsiString("'")+",";
sql+=AnsiString("'")+AnsiString((Variant)person)+AnsiString("'")+")";
ret=ExecMatchSql((WideString)sql);
return ret;
}
在客户端程序中测试通过
void __fastcall TFormRun::Button1Click(TObject *Sender)
{
Variant scr,waste,person;
scr="1111";
waste="2222";
person="4444";
dm->InsertMatchCode(scr,person);
}
然后创建线程,在线程中调用
...
scr=AnsiString(code);
person=FormDoc->asNO[index];
dm->InsertMatchCode(scr,person);
...
结果失败,各种字符一样,在调用服务程序中
AdhcServ->InsertPsp(code,person)时抱错,错误类型相当奇怪,我从未见过,
m_dispatch!=0,d:/program files/cbuilder/vcl/utilcls.h,...
有[cancel]=debug,[yes]=Terminate,[no]=continue等选项,
 
补充:出现错误
m_dispatch!=0,d:/program files/cbuilder/vcl/utilcls.h/3901
 
呵呵,经过一下午的努力,问题已经解决了。
不过,该怎么回收分数啊?
 
haha,好像没法收回!送给我我再送给你吧!
 
别收了,给我让我提个问题吧
 
多人接受答案了。
 
顶部