壹佰网|ERP100 - 企业信息化知识门户

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 1999|回复: 17

[Domino B/S开发] 请教各位:代理在客户端和web下执行有何区别?有实例的

[复制链接]
发表于 2005/4/14 11:38:05 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。如果您注册时有任何问题请联系客服QQ: 83569622  。

您需要 登录 才可以下载或查看,没有帐号?注册

x
我发现在6.5中,代理中的代码可在客户端运行成功,而在web中调用则不行:以我连接数据库的这段代码为例,大家看看有什么问题:
Sub Initialize
        Dim Session As New NotesSession
        Dim DB As NotesDatabase
        Dim sName As String
        Dim doc As notesdocument
        Dim qry As ODBCQuery
        Dim result As ODBCResultSet
        Dim con As ODBCConnection
        sName = Session.EffectiveUserName
        sName=Strrightback(Strleftback(sName,"/"),"=")
        Set DB = Session.CurrentDatabase
        Set doc = Session.DocumentContext
        Set con=New ODBCConnection
        Set qry=New ODBCQuery
        Set result=New ODBCResultSet
        Set con = New ODBCConnection
        If con.ConnectTo("SMSConn","sa","jiaxun") Then
                Set qry.connection=con
                qry.sql="SELECT user_name,mobile_num from operators where operator_name='"+sName+"'"
                Set result.Query=qry
                Call result.Execute()
                Call result.NextRow()
                doc.content="本消息来自佳讯公司"+result.GetValue(1)+"("+result.GetValue(2)+"):"
                Call con.Disconnect()
        Else
                doc.content="系统有问题,暂停使用"
        End If
End Sub       
发表于 2005/4/14 13:05:33 | 显示全部楼层
首先,我想问一下,你所谓的客户端和服务器是同一台机器吗?
发表于 2005/4/14 13:07:48 | 显示全部楼层
如果不是同一台服务器的话,那么 con.ConnectTo("SMSConn","sa","jiaxun") 这一行可能因为你设定的数据源smsconn不存在而产生异常。
发表于 2005/4/14 13:24:26 | 显示全部楼层
Session.EffectiveUserName
NotesSession的这个属性在web的代理中好像是不起作用的吧,一般用公式去取得
发表于 2005/4/14 13:38:41 | 显示全部楼层
neil好厉害,是的,NotesSession的这个属性在web的代理中好像是不起作用。
 楼主| 发表于 2005/4/14 13:42:53 | 显示全部楼层
多谢两位。服务器和客户端不是同一台机器,SMSConn是在服务器上建立的odbc名称,连接正常。而且在notes客户端是正常的,只是在浏览器中不行。所以不可能是数据源异常
发表于 2005/4/14 13:56:19 | 显示全部楼层
可以在qry.sql="SELECT user_name,mobile_num from operators where operator_name='"+sName+"'" 前,先打印Sname这个变量的值,

print "<script>alert(&#39;"+sname+" &#39;)</script>"

看看Sname是否为你需要的值。
 楼主| 发表于 2005/4/14 14:10:55 | 显示全部楼层
If con.ConnectTo("SMSConn","sa","jiaxun") Then
  Set qry.connection=con
  qry.sql="SELECT user_name,mobile_num from operators where operator_name=&#39;"+sName+"&#39;"
  Set result.Query=qry
  Call result.Execute()
  Call result.NextRow()
  doc.content="本消息来自佳讯公司"+result.Getvalue(1)+"("+result.Getvalue(2)+"):"
  Call con.Disconnect()
Else
  doc.content="系统有问题,暂停使用"
End If

这段代码在web调用后的结果是显示出了"系统有问题,暂停使用",也就是说在If con.ConnectTo("SMSConn","sa","jiaxun") Then的时候就判断连接数据库不成功了,后面要用到sName的地方根本就没有运行,
发表于 2005/4/14 14:21:13 | 显示全部楼层
顶一个。
发表于 2005/4/14 14:25:02 | 显示全部楼层
你在服务器上的Notes客户端执行过这个代理吗?
 楼主| 发表于 2005/4/14 14:34:17 | 显示全部楼层
yes
 楼主| 发表于 2005/4/14 15:03:16 | 显示全部楼层
各位大侠有什么办法吗?
发表于 2005/4/14 15:23:43 | 显示全部楼层
看代码是看不出什么东西来啦。
发表于 2005/4/17 20:01:38 | 显示全部楼层
sName = Session.Remote_User(0)

[本贴已被 luckbird 于 2005-4-18 11:23:48 修改过]


[本贴已被 luckbird 于 2005-4-18 11:31:13 修改过]
发表于 2005/4/21 10:13:39 | 显示全部楼层
看的头都大了/抽烟
这个问题感觉不在手头做有点为难啊
还有更多的遇到问题时的状态资料吗?
发表于 2005/4/22 10:53:46 | 显示全部楼层
是r5的还是r6的?看看代理是不是选择在web执行,ODBCConnection没有用过,就用过jdbc的没有什么问题
发表于 2011/3/18 13:45:16 | 显示全部楼层
你需要在Domino服务器上设置同名的ODBC
应为客户端连接是通过本机连接的
而WEB是通过服务器连接的
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|Archiver|小黑屋|手机版|壹佰网 ERP100 ( 京ICP备19053597号-2 )

Copyright © 2005-2012 北京海之大网络技术有限责任公司 服务器托管由互联互通
手机:13911575376
网站技术点击发送消息给对方83569622   广告&合作 点击发送消息给对方27675401   点击发送消息给对方634043306   咨询及人才点击发送消息给对方138011526

GMT+8, 2025/11/29 17:39 , Processed in 0.019585 second(s), 16 queries , File On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表