以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  关于web数据源的问题  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=124482)

--  作者:YDS
--  发布时间:2018/9/7 9:27:00
--  关于web数据源的问题
我想用web数据源建立多账套,客户登陆的时候先输入服务器的ip、端口、用户名、密码  然后进行连接   连接以后可以显示服务器的所有对该用户开放的数据源   客户根据需要   选择相应的账套   这样可以实现吗?要如何做?
--  作者:有点蓝
--  发布时间:2018/9/7 9:49:00
--  
参考示例二:http://www.foxtable.com/webhelp/scr/0682.htm
--  作者:YDS
--  发布时间:2018/9/7 10:33:00
--  
老师  这个我知道的  我的意思是web一个网址对应一个数据源   我再登陆的时候要怎么检索?

比如服务端
Select Case e.Path
   
Case "sjy1.htm"
        e.AsDataServer("数据源1")

   
Case "sjy2.htm"
        e.AsDataServer("数据源2")
    Case "sjy3.htm"
          e.AsDataServer("数据源3")

End
Select

我在客户端要怎么弄?

--  作者:有点蓝
--  发布时间:2018/9/7 10:50:00
--  
Select Case e.Path
    Case "sjy.htm"
e.WriteString("sjy1.htm|sjy2.htm|sjy3.htm")
    Case "sjy1.htm"
        e.AsDataServer("数据源1")

    
Case "sjy2.htm"
        e.AsDataServer("数据源2")
    Case "sjy3.htm"
          e.AsDataServer("数据源3")

End
 Select

客户端:
Dim hc As New HttpClient("http://127.0.0.1/sjy.htm")
Dim
 s As string = hc.GetData()
MessageBox
.Show(s)

--  作者:YDS
--  发布时间:2018/9/7 18:59:00
--  
客户端发送表单
Dim hc As New HttpClient("http://" & e.Form.Controls("SIP").text & ":" & e.Form.Controls("SPort").text & "/sjyget.htm")
hc.FormData.Add("cn",e.Form.Controls("computerName").text)
hc.FormData.Add("IP",e.Form.Controls("IP").text)
hc.FormData.Add("ID",e.Form.Controls("ID").text)
Dim s As String = hc.GetData()

服务端sjyget.htm代码
Dim e As RequestEventArgs = args(0)
Dim Verified As Boolean
Dim cn As String  = e.PostValues("cn")
Dim ip As String  = e.PostValues("IP")
Dim id As String  = e.PostValues("ID")
Dim dr As DataRow = DataTables("客户端授权表").Find("ID = \'" & id & "\'")
If dr IsNot Nothing AndAlso dr("AUTH") = 1 Then
    Verified = True
    dr("TIME") = Date.now
    dr.save
End If
If dr Is Nothing Then
    Dim nr As DataRow = DataTables("客户端授权表").addnew
    nr("NAME") = cn
    nr("IP") = ip
    nr("ID") = id
    nr("AUTH") = 0
    nr("AUTHM") = EncryptText(id,"#xo#","#ar#")
    nr("TIME") = Date.now
    Verified = False
    nr.save
End If
If Verified = False Then
    e.AppendCookie("Error","用户身份验证失败!")
    Return ""
End If
Select Case e.Path
    Case "sjyget.htm"
        e.WriteString(DataTables("账套管理表").GetComboListString("账套名称"))
End Select


为什么客户端
Dim s As String = hc.GetData() 
得到的S始终为空

--  作者:有点蓝
--  发布时间:2018/9/7 21:12:00
--  
贴出httprequest代码看看

If Verified = False Then
    e.AppendCookie("Error","用户身份验证失败!")
    e.WriteString("用户身份验证失败!")
    Return ""
End If
Select Case e.Path
    Case "sjyget.htm"
        e.WriteString(DataTables("账套管理表").GetComboListString("账套名称"))
End Select

--  作者:YDS
--  发布时间:2018/9/7 21:29:00
--  
错误的时候没有问题,我的意思是正确的时候返回的也是nothing
--  作者:有点蓝
--  发布时间:2018/9/7 21:49:00
--  
贴出httprequest代码看看!!!


Select Case e.Path
    Case "sjyget.htm"
msgbox(DataTables("账套管理表").GetComboListString("账套名称")) ‘这里能不能弹出来内容’
        e.WriteString(DataTables("账套管理表").GetComboListString("账套名称"))
End Select

--  作者:YDS
--  发布时间:2018/9/8 7:55:00
--  
问题解决了

If dr IsNot Nothing AndAlso dr("AUTH") = 1 Then

改成

If dr IsNot Nothing AndAlso dr("AUTH") = True Then

就可以了    但是不知道为什么会这样

--  作者:有点蓝
--  发布时间:2018/9/8 8:46:00
--  
逻辑型当然是true和false,又不是SQL语句