以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  这样操作能保存系统配置吗?  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=48496)

--  作者:有点甜
--  发布时间:2014/3/30 18:03:00
--  

 理论上是可以的。你先问什么?出什么错了?


--  作者:有点甜
--  发布时间:2014/3/30 18:34:00
--  

 这个是大问题,是想打开项目的时候切换数据源么?你得先理清思路。

 

 项目打开以后,首先执行的是 BeforeConnectOuterDataSource 事件

 

 你如果要更改数据源必须这样写代码

 

\'检测是否能连接成功

Dim server As String
Dim mima As String
GetConfigValue("fwq", server)
GetConfigValue("mm", mima)
Dim s As String ="Provider=SQLOLEDB.1;Password=" & mima &";Persist Security Info=True;User ID=sa;Initial Catalog=mf;Data Source=" & server
If Connections.TryConnect(s) = False Then
    MessageBox.Show("数据源无法连通!","提示")
    Forms("系统连接").show \'这个窗口,必须是 模式窗口

    \'重新得到能成功的值,设置连接

    e.ConnectionString = "xxxx"
Else
   MessageBox.Show("数据源连通!","提示")
End If

 

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

 


[此贴子已经被作者于2014-3-30 18:34:29编辑过]

--  作者:有点甜
--  发布时间:2014/3/30 19:10:00
--  

 呃,错了。取值要这样

 

 server = GetConfigValue("fwq", nothing)
 mima = GetConfigValue("mm", nothing)


--  作者:有点甜
--  发布时间:2014/3/30 21:22:00
--  
以下是引用liming730323在2014-3-30 20:56:00的发言:

 

我这样写,运行出错啊,应该怎么写啊?

 

呃,没人理解你到底想做什么,你代码写在哪里,又报什么错。

 

问题请表述的具体一点,再不然,请上传你做的一个例子加以说明


--  作者:有点甜
--  发布时间:2014/3/30 21:31:00
--  

 那你就应在BeforeConnectOuterDataSource 写代码,而且你的[系统连接]必须是模式窗口

 

Dim server As String
Dim mima As String
server = GetConfigValue("fwq", nothing)
mima = GetConfigValue("mm", nothing)
Dim s As String ="Provider=SQLOLEDB.1;Password=" & mima &";Persist Security Info=True;User ID=sa;Initial Catalog=mf;Data Source=" & server
If Connections.TryConnect(s) = False Then
    MessageBox.Show("数据源无法连通!","提示")
    Forms("系统连接").show \'这个窗口,必须是 模式窗口

   

    \'重新得到能成功的值,设置连接

    server = GetConfigValue("fwq", nothing)
    mima = GetConfigValue("mm", nothing)
    s = Provider=SQLOLEDB.1;Password=" & mima &";Persist Security Info=True;User ID=sa;Initial Catalog=mf;Data Source=" & server

    e.ConnectionString = s
Else

   e.ConnectionString = s
   MessageBox.Show("数据源连通!","提示")
End If

 

 

 

你应该写在窗口里的代码,大致这样

 

Dim server As String = ""
Dim mima As String = ""
server=Forms("系统连接").Controls("TextBox1").text

mima=Forms("系统连接").Controls("TextBox2").text
SaveConfigValue("fwq",server)
SaveConfigValue("mm", mima)


--  作者:有点甜
--  发布时间:2014/3/30 22:09:00
--  

 改成这样了,不过发觉这样以后,在BeforeConnectOuterDataSource 中是无法操作form的,所以不成功。

 

 

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:美发管理系统.foxdb


--  作者:有点甜
--  发布时间:2014/3/30 22:11:00
--  

 这样的话,就比较麻烦了,你必须自己用代码定义一个窗口,再定义事件,才能实现切换数据源的功能

 

 挺麻烦的的,代码类似


Dim nform As new System.Windows.Forms.Form
nform.text = "测试"
nform.show()


--  作者:狐狸爸爸
--  发布时间:2014/3/31 9:17:00
--  

foxtable已经考虑到这个问题,用扩展用户属性:

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

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

 


--  作者:有点甜
--  发布时间:2014/3/31 9:19:00
--  
以下是引用liming730323在2014-3-31 9:10:00的发言:
求实例指导,谢谢

 

这个问题,初学者不建议弄。我觉得这个功能应该由官方提供,允许用户自定义项目启动之前的窗口,这样就可以做自己想要的登陆窗口和数据源切换窗口了。


--  作者:狐狸爸爸
--  发布时间:2014/3/31 9:26:00
--  
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目241.table