问题描述如下:本人初学delphi7,前一阵子作了一个mis系统,里面用了一个datamodule模块,然后把adoconnection组件放在里面,datamodule里面还放置了一些table组件,都是和这个connection连接的,当时由于不太懂这方面的知识,所以,adoconnection连接远程sql server后,与之连接的table的active都设置为了true,现在重新要搭建这个mis,可是服务器的ip变化了,也就是说我要重新改编程序中的adoconnection的连接地址,可是我一打开delphi7 然后打开datamodule模块后,机器就跟死机了一般,一点反应都没有,我想改数据库组件一点办法都没有,哪位高手能告诉我怎么做,谢谢了,急等!!!

解决方案 »

  1.   

    文件拷到另外一台电脑试试,另外建议动态链接数据库:
    //AServerName, ADataName, AUser, Apass分别可以为服务器的IP地址\数据库名\用户名\密码
    function getDataConnection(AServerName, ADataName, AUser, Apass:string);
    begin
      Result := 'Provider=SQLOLEDB.1;Password=' + Apass 
                + ';Persist Security Info=True;User ID=' + AUser 
                + ';Initial Catalog=' + ADataName 
                + ';Data Source=' + AServerName;
    end;
    调用如下:
    ADOConnection1.ConnectionString := getDataConnection(ServerName, DataName, User, pass);
    ADOQuery1.connection := ADOConnection1;
      

  2.   

    你可以用文本编辑工具打开这个数据模块的DFM文件,打开后,看见内容,我想你应该知道修改什么了.如果没把握,这样做之前注意先备份你的源码.
      

  3.   

    同意楼上的,不过也没什么危险,不用备份那么大件事吧,
    只要把对应 active 原来是 true 改成 false 就行了
      

  4.   

    设计时把连接属性设置为false就没这问题了,楼主得耐心等待恢复出来再设吧.你的地址变了,数据库一直在连接却怎么也连不上,当然慢了.
      

  5.   

    程序里要连接时,要能容错,先try试一下,不成功再让程序干别的.
      

  6.   

    一个简单得办法:
    用记事本打开datamodule文件,修改里面得IP。然后保存。启动delphi,打开工程,ok
      

  7.   

    是由于DataModule中的那个ADOConnection的Active属性设置成了True, 然后你一打开那个DataModule, Delphi就尝试按照ADOConnection中的设置去连接数据库了, 而那个设置中的数据库服务器还是原来的地址, 连接不上,于是就出现了假死机。
    修改方法之一:按楼上几位所说的,直接修改DataModule的DFM文件。
    修改方法之二:按原来的设置,把数据库服务器准备好,然后打开DataModule后修改ADOConnection中的设置。