以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  怎样把互联网数据源随时切换为本机数据源  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=42360)

--  作者:jacksn
--  发布时间:2013/11/9 10:12:00
--  怎样把互联网数据源随时切换为本机数据源
平时我在公司用开发版进行设计,连接公司的SQL数据库(局域网方式),周六日在家里设计,因为有时公司会停电,不能通过互联网连接公司服务器的SQL,我尝试更改数据源为移动硬盘上的一个MDB文件,但是屡次尝试都不成功。——我的MDB文件已经设置了和SQL一模一样的几个表。这种情况该如何处理呢?请有这方面经验的高手指教!谢谢
BTW:主键列已经有_Identify列(自动增量型)和"_Locked"列。
[此贴子已经被作者于2013-11-9 10:14:57编辑过]

--  作者:Bin
--  发布时间:2013/11/9 10:19:00
--  
如果表结构完全一致,更改为MDB文件后应该也是可以正常运作的. 除开涉及到ACCESS不支持的SQL语句
--  作者:jacksn
--  发布时间:2013/11/9 11:34:00
--  

这个是项目事件代码,请看是否有何问题(用户有一个“数据源”属性)

BeforeConnectOuterDataSource

\'\'\'选择数据源

Dim ds As String = e.Name \'data source

Dim cs As String = "Provider=SQLOLEDB.1;Password=****;Persist Security Info=True;User ID=foxtable"

Dim ex As String = e.User.ExtendedValues("数据源")

Select Case ex

    Case "局域网"

        e.ConnectionString = cs & ";Data Source=rhl-server"

    Case "互联网"

        e.ConnectionString = cs & ";Data Source=rhlgzedg.vicp.cc"

    Case "本地"

e.ConnectionString  = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source = J:\\Tools\\FoxTable\\项目1_天平行数据库系统\\Attachments\\备用外数据源2.mdb;Persist Security Info=False"

    Case "手动"

        e.EditConnectionString()

    Case "自动"

        If Network.Ping("192.168.1.16") = True  Then \'如果局域网接通

            e.ConnectionString = cs & ";Data Source=rhl-server"

        ElseIf Network.Ping("rhlgz.vicp.cc") = True  Then \'采用互联网数据库

            e.ConnectionString = cs  & ";Data Source=rhlgzdeg.vicp.cc"

        Else \'如果互联网无法接通,采用本地数据库

e.ConnectionString  = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source = J:\\Tools\\FoxTable\\项目1_天平行数据库系统\\Attachments\\备用外数据源2.mdb;Persist Security Info=False"

        End If

End Select

[此贴子已经被作者于2013-11-10 20:24:57编辑过]

--  作者:Bin
--  发布时间:2013/11/9 11:37:00
--  
你后面的代码和谐了呢,你要确保你ACCESS连接字符串正确哦, ACCESS的连接字符串和SQL是不一样的.
--  作者:lyfxybc
--  发布时间:2013/11/9 18:15:00
--  
一台机也可设置局域网,但必须保证能上网 。公司局域网数据库ip以及计算机名必须设置成和家里一样,路径也要一样,项目不论在局域网还是家里操作是一样的。
[此贴子已经被作者于2013-11-9 18:19:24编辑过]

--  作者:jacksn
--  发布时间:2013/11/10 20:28:00
--  
被河蟹的代码补上去了。不知道是否这论坛的bug,它居然会象word的错误检查一样在我的某些单词下加个红色下划线,然后把后面的内容删除掉,尝试了很多次才能补上去。
SQL和ACCESS的连接代码当然是不同的,我都是从软件自己生成的代码复制过来的不会有错。
另,楼上的应该没明白我的意思。
[此贴子已经被作者于2013-11-10 20:29:30编辑过]

--  作者:有点甜
--  发布时间:2013/11/10 20:33:00
--  
 设置不成功,有没有提示什么错误?还是在使用的过程中出错?
--  作者:jacksn
--  发布时间:2013/11/10 22:41:00
--  
先是这两个提示,我可以理解:
图片点击可在新窗口打开查看此主题相关图片如下:1.jpg
图片点击可在新窗口打开查看
图片点击可在新窗口打开查看此主题相关图片如下:2.jpg
图片点击可在新窗口打开查看
然后下面这些提示,每个表都会出现:

图片点击可在新窗口打开查看此主题相关图片如下:3.jpg
图片点击可在新窗口打开查看

图片点击可在新窗口打开查看此主题相关图片如下:4.jpg
图片点击可在新窗口打开查看
再后这个发不出(超过三个附件,很晕啊),下一个贴贴出来:




--  作者:jacksn
--  发布时间:2013/11/10 22:42:00
--  
再后是这个:
图片点击可在新窗口打开查看此主题相关图片如下:32.jpg
图片点击可在新窗口打开查看

--  作者:有点甜
--  发布时间:2013/11/10 22:49:00
--  
 建议你先这样做。

 测试每一个数据源用菜单的添加数据源的方法设置,看是否提示错误,直到不提示错误,再编写事件。

 如果设置可以成功,那么编写代码也是肯定可以成功的。看你的代码思路基本正确,慢慢调试吧。