COM+問題(100分)

  • 主题发起人 主题发起人 zhangkan
  • 开始时间 开始时间
Z

zhangkan

Unregistered / Unconfirmed
GUEST, unregistred user!
各路大俠﹕
我在測試COM+中的服務元件時﹐發現我的交易根本沒有在MTS保護內。而我該元件是設的
支援交易。但若我將元件改為需要交易時﹐在產生元件時就出錯。Stock OverFlow,災難性失
敗。請問這是什么原因﹖(我是用的Delphi6)﹐若誰能提供一點怎么用Delphi6中那個COM+元
件起什么作用﹐或怎么寫COM+元件的資料﹐感激不盡﹗
哪位大俠有沒有一個完整的元件范例程序﹐簡單點沒問題﹐只有包含了怎么交易﹐怎么
更新(要包含中需求更新﹐支援交易﹐需求新交易)。最好還有元件中呼叫其他元件。收到
后給分﹐200分﹗
誰知道李維的ADO/MTS/COM+一書的范例程序哪兒有下載的﹐提供一下﹐第一位有效下載
提供者100分﹗
謝謝各位幫幫忙。好長時間沒上來了。
 
http://202.96.70.228/cakk/delphi/delphi.htm
 
http://61.128.234.76/book/xhdownload/sort.asp?zhuid=5
 
謝謝﹐問題完后再分派分。李維的源代碼我COPY過﹐還以為沒有拷對﹐原因是只有前4章。
誰回答我的1﹐2問題﹖
 
现在我有李维的源码了,但我发现还有那本书的电子版,不知在哪儿能COPY到,我只有前四章的.
谢谢哪位告诉一声.
 
我也想下载李維的ADO/MTS/COM+一書的范例程序,但没能找到,哪位有知吗?
 
谁能回答我的第一个问题?分数不够,我会再加!
 
如何对COM+除错及COM+中为何程序改为必需交易便出错的问题。(200分甚至更多)
1.我想实现COM+除错功能.
我照着李维书中的方法,在Delphi5和Delphi6中都无法成功。出现“服务器执行失败”的
错误。我想应该是Delphi的问题。因为我在元件服务中设好后,若Delphi中不打开该档案,
就能正常执行,但若Delphi中打开要除错的服务端程序,照着书中方法在run->paramters中
设置好,就会出现上述问题。
2.为何我的程序不能改为必需交易模式?
我在支援交易下能够正常运行,但其并不在交易保护模式下,而我将该元件改为必需交易便
出错“stack owerflow”,为何会如此呢?我也照着将李维提示的那两个档案改了。代码如
下,若哪位愿意帮忙,我可以将源程序发给你。哪位有COM+的源代码也可以发给我,若对我
有帮助,一定高分相送!我的email地址:abkk2000@21cn.com。
这是写的一个直接执行SQL的元件,可将其改为必须交易却出问题。
procedure TdmDoIt.DoIt(const sSQL: WideString);
begin
try
with adoqDoIt1do
begin
Active:=False;
SQL.Clear;
SQL.Add(sSQL);
ExecSQL;
SQL.Clear;
end;
// SetComplete;
SetAbort;
except
SetAbort;
end;
end;

以下是另一个元件调用上面这个元件,都在COM+服务程序中。
procedure TmtsSecurity.WritLoginOut(const Sys_ID, User_ID: WideString;
In_Time: TDateTime;
const Card_ID: WideString);
var Use_Time,sIn_Time,sOut_Time,sSQL:string;
Exit_Time:TDateTime;
IDo:IdmDoIt;
begin
Exit_Time:=now;
Use_Time:=FormatDateTime('hh:nn:ss',(Exit_Time-In_Time));
sIn_Time:=FormatDateTime('yyyy/mm/dd hh:mm:ss',In_Time);
sOut_Time:=FormatDateTime('yyyy/mm/dd hh:mm:ss',Exit_Time);
sSQL:='update loginuser set exit_time=';
sSQL:=sSQL+'to_date('+''''+sOut_Time+''','+'''yyyy/mm/dd HH24:MI:SS'''+'),';
sSQL:=sSQL+'use_time='+''''+Use_Time+'''';
sSQL:=sSQL+' where user_name='+''''+User_ID+'''';
sSQL:=sSQL+' and log_Time=to_date('+''''+sIn_Time+''','+'''yyyy/mm/dd HH24:MI:SS'''+')';
sSQL:=sSQL+' and net_Address='+''''+Card_ID+'''';
try
OleCheck(ObjectContext.CreateInstance(CLASS_dmDoIt,IID_IdmDoIt,IDo));
IDo.DoIt(sSQL);
//程序运行到这儿时便出问题,必需交易模式下。
SetAbort;
//而若改成支援交易,这句没有用,数据还是会被执行,这一点我知道,是因为
// SetComplete;
//在支援交易下并不受交易保护。
except
SetAbort;
end;
end;

我的编译环境是Delphi6。
请教哪位对COM+除错成功过的朋友答复一下(原因和解决办法)。另外,我见到书中几乎每
一个物件都是一个DLL,而我则比较喜欢将多个放在一个DLL中(比如说一个模块放在一个DLL中),
请问哪样要好一些呢?谢谢!
不知网上有没有一个专门讨论用Delphi写COM+的地方?
请各位帮帮忙!!!我很急呀.
 
哪里老大,可以给小弟一个用midas 下的socket connection作三层数据结构的例子,
(BCB的最好了!或者 是DELPHI的或者是VC++)
或者告诉我如何用SOCKET CONNECTION出可以(但服务程序如何做。。。)
我会用DCOM CONNECTION?????
多多指教了!!!!!!!!!!!!!!!!!!!!!!1!
中秋可以请大家喝茶。。。。。。。
 
给你一个建议:
在开发com的问题时候,最好县配置一个好的环境(比如 在 windows2000 server中进行开发)
也许有的时候出现不可思议错误就是忽略了这个问题
 
我在用BCB5做多层结构系统时,我在Server端加入了一个取得服务器IP地址的方法:GetServerIP它的参数是vIP:Variant *,IN方式,并在服务端实现了这个方法,
加入的代码如下:
*vIP="192.168.0.01";最后我注册成功。
可是在我开发客户端程序时,我用TSocketConnection
当取得它的服务时我是这样做的:
Variant* vip;
SocketConnection1->AppServer.GetServerIP(vip);
Edit1->Tex=vip;
可 是我在运行程序时出错,没有编译通过。
它说getserverIP不是variant的成员
getserverIP is not a memober of variant
请问?
我该如何去调用这个方法呢?
请各位大侠多多指教?
小生的QQ:65466700(24小时在线恭候)
MAIL: alongsun@sina.com
 
算了,很久了。
 
后退
顶部