急!三层中ORACLE连接问题,高手请进。(200分)

  • 主题发起人 IT书生
  • 开始时间
I

IT书生

Unregistered / Unconfirmed
GUEST, unregistred user!
我的系统配置:WIN2000 SERVER,DELPHI6
(1)在应用层:datasetprovider 控件与一个Adoquery1控件,adoquery1在
connectionstring里连接oracle数据库。
(2)用控件TScoketConnection 连接,address指定为:应用层服务器的ip,
控件ClientdataSet1 在remoteServer里连接scoketconnection1,
providername连接datasetprovider1
(3)问题:应用层也在我本机上运行,在下面的客户端登录程序中,在我本机上运行都正常
,但到了别人的机器上(WIN2000)上却抛出异常,怀疑是ADO的问题,但客户端通过应用层
连接到ORACLE数据库进行登录验证,2000带的是ADO2.5,又不用装ORACLE客户端,为什么
连接不上呢。
procedure TfrmLogin.btnOkClick(Sender: TObject);
Var
nowstr:string;
begin
if (trim(edtuser.Text)='')or(trim(edtpwd.Text)='' ) then
begin
application.MessageBox('请输入您的用户名和密码!','提示信息',mb_ok or mb_iconwarning);
exit;
end;
try
FrmDM.ClientdataSet1.Close;
frmDM.ClientdataSet1.CommandText:='Select users_name,users_passwd From users_info Where users_name='''+EdtUser.Text+'''';
FrmDM.ClientdataSet1.Open;
curusername:=edtuser.Text;
password:=FrmDM.ClientdataSet1.fieldbyname('users_passwd').AsString;
If password=trim(EdtPwd.Text) then
 //通过验证
begin
nowstr:=datetimetostr(now);
FrmDM.ClientdataSet1.Close;
frmDM.ClientdataSet1.CommandText:='update D_USERS_INFO set LASTLOGIN_TIME=sysdate Where users_name='''+EdtUser.Text+'''';
FrmDM.ClientdataSet1.Execute;//更新登录信息
if frmdm.SC1.Connected then
frmdm.SC1.Close;
frmlogin.Close;
End
else
begin
Application.MessageBox('登录用户或密码错误!','提示信息',MB_OK or mb_iconinformation);
Edtpwd.Text:='';
FrmDM.ClientdataSet1.Close;
frmdm.ScoketConnection1.Close;
Exit;
end;
except
Application.MessageBox('登录错误,请重新登录!','提示信息',MB_OK or mb_iconinformation);
FrmDM.ClientdataSet1.Close;
frmdm.ScoketConnection1.Close;
exit;
end
end;
(4)希望高手出手,提出宝贵意见,为什么有的机器行有的不行,奇怪?
 
》》但到了别人的机器上(WIN2000)上却抛出异常,
出现了什么异常提示? scktsrvr.exe运行了没有?
 
另外:
把中间层 DataSetProvider控件的option-- 》poAllowCommandText设为true,
试试看~ 是不是这个引起的???
 
应该没有问题的! [:)]
 
to jrq:我是已经做好程序,分发客户端程序,有的登录没问题,有的却不行,程序代码
我想应该没问题吧,其它的。。^_^
 
正在看你的程序! 学习~

帮你up先! [:)]
 
客户端不会用的是Win95吧,如果是要在其中安装WinSocket2.0以上版本.
另外请IT书生到
http://www.delphibbs.com/delphibbs/dispq.asp?lid=991649
拿分.
 
to HunterTeam:不好意思,没看到你的问题,我会尽快写例子给你。不过不能懒的试啊,
只有试试,才能体会深刻,呵呵。。。(共同学习)
我的客户端现在测试的都是WIN2000系统,并且都装有OFFICE2000。
 
to IT书生:
例子有无都无妨,我这几天都在摆弄这个。多谢你了!
 
to HunterTeam:已经给你贴了个例子:如何在应用层定义接口,调用存储过程。
看看有没有用。
我的问题:???? 希望大家积极发言,提供点思路也行,先谢谢了。
 
我做过一个同样的东西,也是有一天用户在重装机器后不能用了,后来由于没有源程序,
没办法,还重方式重新开发了一套!幸好不是什么大东西!^o^
 
提前,欢迎大家灌水,来点思路也行啊。再一次谢谢。
 
我又来看看了,我提![:D]
 
〉但到了别人的机器上(WIN2000)上却抛出异常
不知道报告的是什么错误啊
 
多谢各位,问题解决,我用
on e:exceptiondo
showmessage('错误信息:'+e.message);
捕获到异常后,已经解决问题。
 
顶部