以文本方式查看主题

-  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=159617)

--  作者:lgzhao
--  发布时间:2021/1/1 6:29:00
--  可否先不外部数据源
蓝老师新年好,

程序服务器地址变动时,希望让用户可以自己设置服务器地址,但不让其设置连接字符串。

我的理解是foxtable允许程序完全打开后再连接外部数据库的。
但因为程序刚启动时要自动连接外部数据源,此时若外部数据源不通则会报错。

请问有无办法屏蔽程序自动连接外部数据源?我再beforeconnect数据源那里没有发现e.cancele.cancel选项。

我希望是先不连接外部数据源,待程序完全启动之后,显示自定义登录窗口的时候,给用户一个服务器地址或名称的下拉列表。

(因为必须不用中文的原因,我无法使用帮助文件的方法利用内部用户登录选项来做。)

谢谢 !








--  作者:lgzhao
--  发布时间:2021/1/1 6:34:00
--  
如果不行,那么另一种方法,

就是考虑用C#设计一个登录窗口,所有的数据源选项和登录验证都在那里执行,之后用C#传递参数打开foxtable。

这样的话,请问如何通过C#调用foxtable并传递登录用户名,数据源地址等信息? 可否提供示例语句?

谢谢

--  作者:有点蓝
--  发布时间:2021/1/3 9:24:00
--  
可以看看这个:
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:选择数据源.zip

如果用C#设计一个登录窗口,登录窗口里返回需要的数据即可,不需要调用foxtable。比如:

dim 窗口 as new 自己设计的登录窗口()
窗口.showdialog()
msgbox(窗口.用户名)
msgbox(窗口.数据源地址)

--  作者:lgzhao
--  发布时间:2021/1/3 17:53:00
--  
谢谢蓝老师。我看了下附件的方法,确实很巧妙,但它只适用于access文件作为数据源,因为其第一次连接时还是需要一个test文件作为临时数据源,否则肯定还会报错。所以不适合我的需求。

那么就只有C#一条路了。老师说不需要调用foxtable,但如此的话如何打开foxtable呢?
此时如果允许用户直接打开foxtable那就没有人工介入数据源选项而不提前报错的可能了。

我希望实现的是所有的验证,包括数据源连通测试都在C#中完成,确保数据源可用,之后直接调用foxtable,类似附件的  Syscmd.Project.Open(ProjectFile,vars("conn"))
这个语句,但通过C#实现,是否可以?



--  作者:有点蓝
--  发布时间:2021/1/3 18:03:00
--  
到foxtable的BeforeOpenProject事件,调用打开C#的登录窗口即可,然后保存数据源地址到全局变量或者文件中给BeforeConnectOuterDataSource使用
--  作者:lgzhao
--  发布时间:2021/1/3 18:09:00
--  

谢谢蓝老师。


不过BeforeConnectOuterDataSource和BeforeOpenProject这两个事件,哪个先执行?

我看BeforeConnectOuterDataSource在项目属性的排序更靠上,如果它先执行一次的话那么在数据源不通时还是无法避免先报错吧。


--  作者:lgzhao
--  发布时间:2021/1/3 18:16:00
--  
我搞明白了。谢谢啦