我用的数据库是MySQL,然后用ADOConnection连接,做好程序后可以运行,可是如果把程序拷到其他电脑上就会报错“灾难性故障”,我测试了一下,问题应该是出在ADOConnection中的字符串上Provider=MSDASQL.1;Persist Security Info=False;User ID=admin;Data Source=lk;Initial Catalog=liankong
请问谁有过这方面的经验?谢谢了!新年快乐!

解决方案 »

  1.   

    没使用过mysql,data source后面的好像是机器名或IP地址.不知有没有改~
      

  2.   

    是不是你的MYODBC版本太底,或者是MYSQL版本的问题:有的版本连接时需要用户名和密码有的不需要
    所以楼主看看是不是这方面的问题!
      

  3.   

    这样的数据库程序直接拷贝一般都会出问题
    因为你在本机编译运行的时候都是用的自己的数据库连接
    但是当你移到其他电脑上的时候,连接就会变,比如说用户名,密码
    所以你最好在运行开始时是写点代码:
    try
      //我的做法是:
      //从ini文件中读取connectionstring;
      //连接;
    except
      //重新输入用户名等重设连接;
      //连接;
      //连接成功就把connectionstring写到一个ini文件中;然后每次去读取这个连接
      //不成功则terminate
    end;
      

  4.   

    to  Kshape(),你的代码调试过了吗?连接不成功DELPHI能捕捉到这个异样吗?
    这个能执行吗?你试试
    except
      //重新输入用户名等重设连接;
      //连接;
      //连接成功就把connectionstring写到一个ini文件中;然后每次去读取这个连接
      //不成功则terminate
    end;
      

  5.   

    我觉得问题出在ADOConnection的连接字符串,因为我把数据库拷到其他机器上后,所有的配置还是配成和原来的一样,可是就是不行呀,我没用过在程序中写连接语句,有没有例子,我试试
      

  6.   

    Provider=MSDASQL.1;Persist Security Info=False;User ID=admin;Data Source=lk;Initial Catalog=liankong
    ////
    Data Source不要用本地服务器的名字..用127.0.0.1就行了.访问速度快..移植性强.
      

  7.   

    to ruth_mmm (忙忙) :
      我的也是这样的问题,我的mysql就在本机上,在odbc配置里测试连接没问题的.
    用ado连接odbc就总是提示"灾难性故障"
      

  8.   

    edit1.Text:=promptdatasource(handle,edit1.Text);ADOConnection1.ConnectionString:=trim(edit1.Text);在其它人的机子上运行时第一次运行
    可以把得到的连接字窜保存到ini文件中
       然后以后就读取就行了
      
      

  9.   

    用mydac 有3.10的可以连4.0以上的mysql D7