以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  想在连接外部数据源时先建立一个目录  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=146582)

--  作者:gudao123456
--  发布时间:2020/2/26 23:41:00
--  想在连接外部数据源时先建立一个目录
有个数据源是放在D:\\x目录下,为了能让系统能自动安装,采取以下方法:
在项目的BeforeConnectOuterDataSource事件里,输入以下代码:

Dim path As String=projectpath & "attachments"  
Dim dir As String=path & "\\Y"
    If FileSys.DirectoryExists("D:\\X")=False  Then   \'如果D盘根目录下文件夹X不存在
     
 FileSys.CopyDirectory (dir,"D:\\X", True)  \'将Y目录拷贝到D盘的X目录下

 End If

将D盘下的目录X删除,在项目的开发文件上可以自动建立,但发布后,进行测试,却说找不到数据源,为什么?如何才能实现在连接数据源之前将数据源的目录建立好,避免出错?谢谢!


--  作者:sloyy
--  发布时间:2020/2/27 1:21:00
--  
 If FileSys.DirectoryExists("D:\\X")=False  Then   \'如果D盘根目录下文件夹X不存在
    FileSys.CreateDirectory("d:\\Y") \'先创建目录
 FileSys.CopyDirectory (dir,"D:\\X", True)  \'将Y目录内容拷贝到D盘的X目录下

  endif


--  作者:gudao123456
--  发布时间:2020/2/27 20:45:00
--  
应该不是要建立目录的问题。我把D盘的目录删除后,打开开发版,是可以直接复制目录的,但发布后为什么就不行了呢
--  作者:sloyy
--  发布时间:2020/2/27 21:43:00
--  
哦,是的可以直接复制目录及其内容
那就是合成的dir目录出问题了
Dim path As String=projectpath & "attachments"  
Dim dir As String=path & "\\Y"
    If FileSys.DirectoryExists("D:\\X")=False  Then   \'如果D盘根目录下文件夹X不存在
 messagebox.show(dir)    
 FileSys.CopyDirectory (dir,"D:\\X", True)  \'将Y目录拷贝到D盘的X目录下

 End If
看看发布前及发布后有什么不同

--  作者:gudao123456
--  发布时间:2020/2/27 21:47:00
--  
看过了,没问题的。发布前可以,就说明代码没问题。问题在升级前,先去连接数据源
--  作者:gudao123456
--  发布时间:2020/2/27 23:01:00
--  


[此贴子已经被作者于2020/2/27 23:04:07编辑过]

--  作者:有点蓝
--  发布时间:2020/2/28 9:50:00
--  
projectpath 改为 e.ProjectPath

BeforeConnectOuterDataSource

这个事件是专业用户才用得着的,普通用户不需要研究它。
准备连接外部数据源的时候执行,可以在此修改连接字符串。

e参数属性:

Name:             外部数据源名称
User:             登录用户
ProjectFile:      项目文件名,含路径。
ProjectPath:      返回项目文件所在目录 
ConnectionString: 返回或设置连接字符串。
HideSplashForm:  逻辑型,设为True,关闭Foxtable的启动封面。


--  作者:gudao123456
--  发布时间:2020/2/28 22:20:00
--  
谢谢!