S
sunwl
Unregistered / Unconfirmed
GUEST, unregistred user!
开发环境:Delphi6+Windows2000 Oracle 9I
使用TSocketConnection,ADO
建立多个远程数据模块,都是MultiInstance, Apartment模式
在一个远程数据模块中声明函数
procedure TPlanServer.planProj(Index: Integer;
const ProjTyID,
EmpID: WideString;
out PLanProjMaxID: OleVariant;
const StrQ: WideString);
var
strSql:string;
Pyear:string;
begin
case index of
0: //取回项目信息
begin
strSql:='select C_PLIPRJ_ID,C_PLPRJ_TYID,Tsys_Projty.C_PROJTY_ID,Tsys_Projty.C_PROJTY_DESC,C_PLPRJ_NAME,C_PLPRJ_UNIT,N_PLPRJ_RESERVE,N_PLPRJ_PAID,D_PLPRJ_BEG,D_PLPRJ_END,C_PLPRJ_STATE,C_PLPRJ_IFPUT,D_PLPRJ_IFDIE,';
strSql:=strSql+'C_PLPRJ_IFDIEEMP,C_PLPRJ_EMPID,Tsys_Emp.C_SYSEMP_ID,Tsys_Emp.C_SYSEMP_NAME,D_PLPRJ_DATE,C_PLPRJ_MEMO from Tplan_Project,Tsys_Projty,Tsys_Emp where (C_PLPRJ_TYID=Tsys_Projty.C_PROJTY_ID)and(Tsys_Projty.C_PROJTY_ID='''+ProjTyID+''')and(Tsys_Emp.C_SYSEMP_ID='''+EmpID+''')';
PlanProj_Q.DisableControls();
PlanProj_Q.Close();
PlanProj_Q.SQL.Clear();
PlanProj_Q.SQL.Add(strSql);
PlanProj_Q.Prepared:= True;
PlanProj_Q.Open();
Server_DM.setDisplayLabel(PlanProj_Q);
PlanProj_Q.EnableControls();
end;
//0:
end;
//case
end;
在客户端以
Plan_DM.planProJ_cdst.Close;
Plan_DM.Plan_sockconn.AppServer.planProj(0,'01','TEST',aa,'');
Plan_DM.planProJ_cdst.Open;
调用.
单客户端运行时正常,但两个用户同时操作相同功能时出现"对象被打开"的提示但数据
一般可以正常返回.再次点击又正常了再同时操作又出提示.很奇怪.不知如何解决.
我很急,请多多帮忙.谢谢
使用TSocketConnection,ADO
建立多个远程数据模块,都是MultiInstance, Apartment模式
在一个远程数据模块中声明函数
procedure TPlanServer.planProj(Index: Integer;
const ProjTyID,
EmpID: WideString;
out PLanProjMaxID: OleVariant;
const StrQ: WideString);
var
strSql:string;
Pyear:string;
begin
case index of
0: //取回项目信息
begin
strSql:='select C_PLIPRJ_ID,C_PLPRJ_TYID,Tsys_Projty.C_PROJTY_ID,Tsys_Projty.C_PROJTY_DESC,C_PLPRJ_NAME,C_PLPRJ_UNIT,N_PLPRJ_RESERVE,N_PLPRJ_PAID,D_PLPRJ_BEG,D_PLPRJ_END,C_PLPRJ_STATE,C_PLPRJ_IFPUT,D_PLPRJ_IFDIE,';
strSql:=strSql+'C_PLPRJ_IFDIEEMP,C_PLPRJ_EMPID,Tsys_Emp.C_SYSEMP_ID,Tsys_Emp.C_SYSEMP_NAME,D_PLPRJ_DATE,C_PLPRJ_MEMO from Tplan_Project,Tsys_Projty,Tsys_Emp where (C_PLPRJ_TYID=Tsys_Projty.C_PROJTY_ID)and(Tsys_Projty.C_PROJTY_ID='''+ProjTyID+''')and(Tsys_Emp.C_SYSEMP_ID='''+EmpID+''')';
PlanProj_Q.DisableControls();
PlanProj_Q.Close();
PlanProj_Q.SQL.Clear();
PlanProj_Q.SQL.Add(strSql);
PlanProj_Q.Prepared:= True;
PlanProj_Q.Open();
Server_DM.setDisplayLabel(PlanProj_Q);
PlanProj_Q.EnableControls();
end;
//0:
end;
//case
end;
在客户端以
Plan_DM.planProJ_cdst.Close;
Plan_DM.Plan_sockconn.AppServer.planProj(0,'01','TEST',aa,'');
Plan_DM.planProJ_cdst.Open;
调用.
单客户端运行时正常,但两个用户同时操作相同功能时出现"对象被打开"的提示但数据
一般可以正常返回.再次点击又正常了再同时操作又出提示.很奇怪.不知如何解决.
我很急,请多多帮忙.谢谢