to neteven:
   我也是要应用到十几个分公司去,也是经常要碰到这个问题。但现在为了解决这个通用问题。有些分公司很远,总不成也要跑去,所以,包括服务器设置,连接设置,我都是在专门通过提供系统维护的功能能完成。我的方法是这样的。
在主程序中判断link表是否已存在,未存在建立它,并进入系统配置表单,包括服务器名,口令,登录名。都由用户自己配置。
等该表已存在后,用一个程序建立连接。
 public jb
  if !used("link")
    use sjk\link.dbf in 0
  endif  
   sqlstring="driver=sql server;server="+allt(link.servername)+";uid="
   sqlstring=sqlstring+allt(link.uid)+";pwd="+allt(link.pwd)+";database=wxrs"
   
   jb=sqlstringconnect(sqlstring)
   
   sele link
   use
     
   if jb<0 or sqlexec(jb,"")<>1
       messagebox("网络正忙或连接出错,请稍后再试!")
       cancel
   endif
   
   然后应用程序中要向服务器取数据的地方,都调用该连接。服务器换了,删了这个表,可重新进行配置。

解决方案 »

  1.   

    to liujianjun ,net_steven :
       你们的分公司是通过VPN联入的吧。
      

  2.   

    1.如果远程,用IP连接2.如果是独立服务器有一个一致的名字,远程视图用的连接不要用命名定义,用字符串 (含在exe里)3.考虑灵活性,用户自己配置,用VFP的setup分发吧(可把odbc一起封装)
      

  3.   


    3.用VFP7的setup分发吧(可把odbc设置一起封装),VFP6的setup不行
      

  4.   

    程序的通用性很重要,决不能给不同用户提供不用的exe我们对跨地区应用的用户都提供一个版本的exe,这要对软件的灵活提出里更高的要求,
    刚才对我的环境参数库统计了一下,220个环境参数设置,就是适合不同需求的用户准备的所以建议大家:一定要版本唯一,不然,麻烦。
      

  5.   

    谢谢诸位狐友的参与.如果是商业软件,只须提供接口由用户自主管理,当然也就不存在这个问题.问题是我们是自用系统,而且涉及财务信息,要求最高限度的安全性,正是基于此,所以不希望客户端的vfp数据库暴露在外.当然,如果我不用远程视图,也就用不着这个数据库了,也同样不存在这个问题了,当初之所以用它,觉得方便而已.
    我的设想是将这个数据库及与sql的连接工作从原来的exe文件分离出来单独做一个
    dll文件,因为这部分基本上固定不变,每个点一个dll,也就做一次而已.而其他与
    应用规则相关的又易变动的部分做成一个统一的exe,可能也只能这样了.诸位可再就此议议,等我忙完这几天再结.诸位想过没有,未来你们准备用什么样的模式来开发
    你们的应用(包括工具)?
      

  6.   

    客户端只管理界面,用中间层对数据处理,封装规则,生成游标等现在最好的开发模式:
    vfp7+xml+sql server2000,实现真正意义上的N层
      

  7.   

    u~~~~~p,人气不旺.那就此再谈谈三层架构的应用经验吧,应该注意哪些关键点,我对这个没有实践经验,可以不拘泥于vfp,其他工具都成,最好给一个应用模型,这是得big分的关键所在.
      

  8.   

    这个三层应用,你可以问ltltlt。
      

  9.   

    to:liujianjun_(流星尔)、net_steven(吃素的狼)
    你们也没有做成功VFP的N层吗??