以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  如何根据用户登陆窗口输入的IP等来连接数据源?  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=29494)

--  作者:zpx_2012
--  发布时间:2013/3/7 19:21:00
--  如何根据用户登陆窗口输入的IP等来连接数据源?

各位老师

 

在打开项目时首先打开用户登陆窗口,然后由用户自己输入服务器IP及数据库名称后再去连接数据源, 

 


此主题相关图片如下:360截图20130307190640301.jpg
按此在新窗口浏览图片

请问这种方式可以实现吗?Forms("用户登陆").open() 代码要放在哪个项目事件下?连接数据源的那行代码要怎么写?

 

这样对不对?

在项目事件BeforeConnectOuterDataSource用了如下的代码

If e.Name = "EI" Then
 

If e.Name = "EI" Then
Forms("用户登录").open

   e.CBACKGROUND-COLOR: #ffffff" face=Verdana>Initial Catalog=" & MyDatabase & ";Data Source=" & MyServer


End If

 

MyServer和Mydatabase这两个变量是在登陆窗口的确定按钮上设置代码得到的。

 

重新登陆后就卡死了,不知道问题出在哪,还有SQL的登陆用户名和密码要怎么样才能加入到链接字符串中去?

 

谢谢!

 

 

[此贴子已经被作者于2013-3-7 19:23:15编辑过]

--  作者:zpx_2012
--  发布时间:2013/3/7 19:24:00
--  

连接字符串怎么乱码了,如下:(为什么显示出来就只有部份或乱码掉啊,只好分成几行了。)

 

If e.Name = "EI" Then
Forms("用户登录").open

  e.ConnectionString =

"Provider=SQLOLEDB.1;Persist Security Info=false;

Initial Catalog=" & MyDatabase & ";Data Source=" & MyServer

End If

[此贴子已经被作者于2013-3-7 19:26:32编辑过]

--  作者:狐狸爸爸
--  发布时间:2013/3/7 19:40:00
--  

BeforeConnectOuterDataSource事件执行的时候,还不存在窗口的,所以此路不通。

用扩展用户属性解决,参考这里的示例二和示例三:

 

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

 

 


--  作者:nblwar
--  发布时间:2013/3/7 19:53:00
--  

BeforeConnectOuterDataSource事件执行的时候

  用 InputValue 函数输入IP


--  作者:hanxuntx
--  发布时间:2013/3/7 19:59:00
--  
以下是引用狐狸爸爸在2013-3-7 19:40:00的发言:

BeforeConnectOuterDataSource事件执行的时候,还不存在窗口的,所以此路不通。

用扩展用户属性解决,参考这里的示例二和示例三:

 

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

 

 

用户扩展属性不支持自定义用户管理啊


--  作者:狐狸爸爸
--  发布时间:2013/3/7 20:07:00
--  

如果自定义用户管理,数据源初始连接到本地无数据的空数据库。


在用户登录之后,直接用这个根据用户的输入合成连接字符串,创建数据源:
http://www.foxtable.com/help/topics/1944.htm


然后切换数据源:
http://www.foxtable.com/help/topics/1932.htm


 
然后加载数据,这是最灵活的方式
 


--  作者:zpx_2012
--  发布时间:2013/3/7 20:17:00
--  
谢谢狐爸,但我用的是自定义的用户管理,而且是SQL外部数据源,可以远程使用的。登陆窗口不出会出现扩展属性啊。怎么办?
--  作者:狐狸爸爸
--  发布时间:2013/3/7 20:24:00
--  
用文本文件保存ip地址和数据库名,这个又不是每次都要修改的。
--  作者:zpx_2012
--  发布时间:2013/3/7 20:33:00
--  
因为客户是内外网都用的,有时是供应商登陆(用域名),那不是每个客户端都要人为去设置一下IP? 因为不可能每次发布前都先得到客户的IP,所以要能实现直接在用户登陆窗口中输入最灵活了。
--  作者:狐狸爸爸
--  发布时间:2013/3/7 20:36:00
--  

修改文本文件一样简单,也不需要事先知道的,不管是窗口修改还是文本文件修改,都是客户自己修改。

实际上,这种情况,用文本文件更合适,很多软件都会有文本形式的配置文件,供用户自行修改。

 

一定要通过窗口修改,用6楼方法。