以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]网络环境下的ftp问题  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=49344)

--  作者:737182811
--  发布时间:2014/4/16 13:34:00
--  [求助]网络环境下的ftp问题
ftp如果绑定的是内部ip地址,那么如果想通过外网访问怎么办呢?
要知道在项目内的ftp属性里面可只允许绑定一个ip地址的。

对于数据源,倒是应该可以通过登录时的扩展属性,来解决外网访问同一数据源的问题。

--  作者:有点甜
--  发布时间:2014/4/16 13:41:00
--  

 参考这里,你可以用 花生壳 固定你的外网ip

 

http://www.foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=14357&skin=0

 


--  作者:shenyl0211
--  发布时间:2014/4/16 13:57:00
--  

\'请选用自定义登录,必须的

 

\'全局代码中

\'以下设置服务器地址
Public IP1 As String = "10.22.1.40" \'内网
Public IP2 As String = "123.123.123.123" \'外网
Public IPa As String = IP1 \'采用值
Public ftpAccount As String = "yourname" \'设置ftp登录用户名
Public ftppassword As String = "yourpassword" \'设置ftp登录密码

\'Public变量的长度至少应该为3个字符

\'根据项目而定--以下定义项目参数
Public sfile As String = "项目管理系统" \'数据源名称,即Sql数据库文件名
Public pname As String = "项目管理系统" \'项目名称,一个项目可以有多个数据源(可以切换)
Public bname As String = "项目管理.bat" \'包含foxtable版本升级后必须升级的foxtable系统文件
Public ename As String = "项目管理.exe" \'管理系统运行文件名
Public rfile As String = "d:\\" & pname & "\\数据文件\\" & ename \'含路径的管理系统运行文件名
Public pfile As String = pname & ".foxdb" \'开发时的项目文件名
Public dpath As String = "d:\\" & pname & "\\设计资料\\" \'开发时的项目文件位置
Public bpath As String = "d:\\" & pname & "\\备份文件\\" \'本地项目文件备份位置,仅开发时用,交付后用upath
Public rpath As String = "d:\\" & pname & "\\数据文件\\project" \'运行时项目文件位置
Public upath As String = "\\项目管理系统\\数据文件\\" \'服务器上的项目文件路径和升级路径
Public npath As String = "d:\\" & pname & "\\升级文件\\" \'客户端的foxtable最新文件保存路径
Public datafile As String = pname & ".zip" \'包含最新升级数据的文件名

 

\'BeforeConnectOuterDataSource中代码

 
    Dim a As Boolean
    For i = 1 To 5 \'ping5次
        a = Network.Ping(IP1,500) \'ping内网,每次500毫秒
        If a Then \'如果ping通就退出for循环
            Exit For
        End If
    Next
    If a Then
        IPa = IP1 \'如果内网Ping通,则用内网地址
    Else
        IPa = IP2 \'否则用外网地址
    End If
    e.C & sfile & ";Data Source=" & IPa

 

\'BeforeLoadOuterTable代码

\'暂不加载数据的表

Select Case e.DataTableName
    Case "合同管理","开票管理","担保管理","授信管理","表列管理","项目管理","清理管理","计量管理","证明管理"
    e.SelectString = "Select * From {" & e.DataTableName & "} Where [_Identify] Is Null"
End Select

 

\'AfterOpenProject代码

\'自动升级代码http://www.foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=38980&replyID=&skin=1


--  作者:737182811
--  发布时间:2014/4/16 14:05:00
--  
我不是这个意思啊:

举例如下:foxtable开发后,该软件主要用于内网,所有数据表中的ftp地址可能设置为192.168.0.5,且内网用户本身不具备internet权限。

现在要求如果出差在外地,也要移动办公,可登录软件。此时内网服务器可能采用端口映射,映射到外网端口,比如202.96.209.3。

此时外网用户如何来登录访问数据库呢?(如何将192.168.0.5的地址切换到202.96.209.3呢?)

--  作者:737182811
--  发布时间:2014/4/16 14:07:00
--  
3楼好像明白我的意思。
--  作者:有点甜
--  发布时间:2014/4/16 14:11:00
--  

 1、你需要连接 202.96.209.3 的数据库,

 

参考

http://www.foxtable.com/help/topics/0682.htm

 

 

 2、你需要修改各个列ftp文件列的存放地址

 

参考

http://www.foxtable.com/help/topics/1477.htm

 

http://www.foxtable.com/help/topics/1410.htm

 


--  作者:737182811
--  发布时间:2014/4/16 14:20:00
--  
对头,看来所有的文件列都要单独设置ftpclient了,工作量看来不小。
--  作者:有点甜
--  发布时间:2014/4/16 14:23:00
--  
以下是引用737182811在2014-4-16 14:20:00的发言:
对头,看来所有的文件列都要单独设置ftpclient了,工作量看来不小。

 

工作量也不多吧?循环所有列,看是否文件列,或者直接判断该列的ftpClient是否为nothing,从而去设置一下就行。

 

if DataTables("表名").DataCols("列名").FTPClien isnot Nothing then

 

end if


--  作者:737182811
--  发布时间:2014/4/16 15:23:00
--  
高,实在是高
--  作者:737182811
--  发布时间:2014/4/16 15:29:00
--  
俺和甜版有缘哪 ,俺家小丫头就叫甜甜。图片点击可在新窗口打开查看