我有几点经验,你可以借鉴一下.
 1.acitveForm 如果有数据库操作的,就一定要做成多层的,指望在activeForm上放一个数据库连接是不可能的.除非你只在自己的机子上运行.
2.编译后的ACtiveForm实际上是一个OCX,而这个OCX是没有安全证书的,所以IE默认是不下载这个OCX,你必须调整IE里面的安全选项.
3.如果是三层结构,那么你还必须调整服务器端的COM配置,使用开始/运行/dcomcnfg进行配置.同时,客户机上必须有midas.dll

解决方案 »

  1.   

    补充:
    假设你现在做的不是Activeform的应用程序,是一个普通的数据C/s两层结构的应用程序,使用的是ADO连接,你把编译好的EXE放到任何一台和服务器联网的机子上都可以运行吗?答案显然是不可以,首先,客户机必须有ADO,然后要有正确的连接配置.ACIVEFORM也是一样,如果客户端和服务端直接连接,肯定会有出错的情况发生,毕竟,使用这个ACTIVEFORM的客户机不一定有诸如ADO之类的东东,ODBC配置也不会正确,所以,会出现你在客户机上有试验成功,有的不成这个情况.我当年在这方面吃了大苦头,因为对ACTIVEForm当时不是很熟悉,后来熬了一个通宵,把他改成三层的形式,总算在预定交货时间前两个小时搞定了,所以我印象特别深.所以,也请你相信我,不要在这方面固执己见,浪费宝贵的开发时间.
      如果做成三层的,那么流程肯定是这样的,ACTIVEForm激活后,肯定会象应用服务器请求数据,如果应用服务器没有运行,那么就激活它.这里面就有一个安全的问题了,也就是权限的设置.windows自带了一个dcom的配置工具,用来给调用dcom的程序分配权限,你可以在里面对你自己编的那个应用服务器的访问权限进行设定,如果不设定的话,那么肯定会出现无法访问的情况,因为默认情况下,权限定义的非常严格.
      你可以通过windows 2000 的开始->运行,键入dcomcnfg 进行配置.
      dcom的配置是针对服务端的,客户端嘛,当然不用另外的配置了:)
      

  2.   

    我在其他机器上出错的提示是:
    Access violation at address 01B7305A in module 'cygproj1.ocx',read of address 00000000
      

  3.   

    :84175971(cyg) 
    感谢各位大哥,让我一试。没有看明白我的意思吗?这不是试试就可以解决的问题啊,要改变的数据库链接方式!!!!!
      

  4.   

    我使用的是三层体系结构我的TARGET dir,TargetURL,HTML dir设置分别如下:
    TARGET dir:  d:\myfile\ie
    TargetURL:  http://k450/cyg
    HTML dir:  d:\myfile\ie虚拟目录为cyg, 物理地址为:d:\myfile\ie请问各位大哥我为什么在其它的电脑上不能浏览我做的网页
      

  5.   

    你的TARGET TargetURL设置不完全正确,应加上端口号(如果设置的默认端口不是80),不用机器名,使用IP,如:http://192.168.222.26:81/,在试试!
      

  6.   

    把数据库改成SQL Server 或 MySQL就可以 用远程数据库…… 用其他数据库,程序怎么能找到呀??????!!!!!!!!
      

  7.   

    yinmingke(黄豆汤) 的补充是非常正确的! 呵呵 哈哈
      

  8.   

    我在其他机器上出错的提示是:
    Access violation at address 01B7305A in module 'cygproj1.ocx',read of address 00000000我想和数据库无关吧。