全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:1773
推到 Plurk!
推到 Facebook!

业务逻辑扩展为COM+带来的奇怪问题

缺席
yynsm
一般會員


發表:1
回覆:0
積分:0
註冊:2007-10-12

發送簡訊給我
#1 引用回覆 回覆 發表時間:2007-10-12 09:14:07 IP:61.175.xxx.xxx 訂閱
最近我把原来的系统扩展为分布式系统时出现了一个奇怪的问题:
我把原来login模块的业务逻辑封装成com 服务,
在CLIENT调用这个模块不管USERID和PASSWORD怎么输入
SERVER都会判断认为能够login
关于业务逻辑的代码为:
[code delphi]
function Tloginlogic.check(userid,password:string):boolean;
begin
with logindb do //logindb是自己写的数据库类 就定义了adoconnection和adoqurey(qry_login)
begin
qry_login.sql.Clear;
qry_login.sql.Add('select * from IdPassword where LoginId="' userid '" and Password="' password '" ') ;
qry_login.Open;
if logindb.qry_login.RecordCount<>0 then
result:=true
else
result:=false;
end;
end;

[/code]

COM 的接口代码为:

[code delphi]
unit ILogin;
{$WARN SYMBOL_PLATFORM OFF}
interface
uses
Windows, ActiveX, Classes, SysUtils, ComObj, JbcarmanagerSvr_TLB, StdVcl;
type
TLoginObj = class(TTypedComObject, ILoginObj)
protected
function check(const userId, password: WideString): WordBool; stdcall;
{Declare ILogin methods here}
end;
implementation
uses ComServ,Unit_loginlogic;
function TLoginObj.check(const userId, password: WideString): WordBool;
var
mylogin:Tloginlogic;
begin
mylogin:= Tloginlogic.create(nil);
result:= mylogin.check(userId,password);
freeandnil(mylogin);
end;
initialization
TTypedComObjectFactory.Create(ComServer, TLoginObj, Class_LoginObj,
ciMultiInstance, tmApartment);
end.

[/code]
现在的问题是不管我输入的userId和Password是否正确 SERVER都会判断为check方法返回true
更奇怪的是

[code delphi]
function Tloginlogic.check(userid,password:string):boolean;
begin
with logindb do //logindb是自己写的数据库类 就定义了adoconnection和adoqurey(qry_login)
begin
qry_login.sql.Clear;
qry_login.sql.Add('select * from IdPassword where LoginId="' userid '" and Password="' password '" ') ;
qry_login.Open;
if logindb.qry_login.RecordCount<>0 then
result:=true //我在这里把result赋值改为false 此方法返回依然是true!!我都不知道这个true怎么来的。。。
else
result:=false;
end;
end;
[/code]
这个业务逻辑在没扩展为COM 的时候运行一点问题都没有 但是现在却有这样的问题。。。真实郁闷哦。。。
我用的是DELPHI7。。。
系統時間:2024-04-24 15:49:51
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!