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)希望高手出手,提出宝贵意见,为什么有的机器行有的不行,奇怪?
(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)希望高手出手,提出宝贵意见,为什么有的机器行有的不行,奇怪?