procedure TDMFrm.DataModuleCreate(Sender: TObject);
var  ServerIP :string;
     Fini: TIniFile;
begin
   try
      Fini := TIniFile.Create(CurDir + 'Config.INI');
      ServerIP:= Fini.ReadString('CRM', 'SERVERNAME', '');       DBConn.ConnectionString:='Provider=Microsoft.Jet.OLEDB.4.0;Data Source=\\'+''+ServerIP+''
                               +'\a\Stock.mdb;Jet OLEDB:Database Password=STOCK';
      DBConn.CommandTimeout:= strToInt(Fini.ReadString('CRM', 'TimeOut', ''));
      DBConn.ConnectionTimeout:= strToInt(Fini.ReadString('CRM', 'TimeOut', ''));
      DBConn.Connected :=True;
   Except
      Application.MessageBox('与数据库连接失败', '提示', 64);
      FrmDB:=TFrmDB.Create(self);
      FrmDB.ShowModal;
      Abort;
   end;
end;=====如过IP地址不准确应该提示‘与数据库连接失败’。。,但现在问题是不执行这个提示和打开FrmDB窗口。

解决方案 »

  1.   

    局域网连接ACCESS,当然是IP地址不准确连接失败的时候应该给出提示了!
      

  2.   

    说说你的问题:
    1、远程连接access,恕我才浅,尽管可以做到,但以楼主功力,最好改为sql server为妥
    2、几个默认值有问题:
          ServerIP:= Fini.ReadString('CRM', 'SERVERNAME', '127.0.0.1');  //默认本机
          DBConn.Connected :=false; 
          DBConn.ConnectionString:='Provider=Microsoft.Jet.OLEDB.4.0;Data Source=\\'+''+ServerIP+''
                                  +'\a\Stock.mdb;Jet OLEDB:Database Password=STOCK';
          DBConn.CommandTimeout:= strToInt(Fini.ReadString('CRM', 'TimeOut', '3000'));
          DBConn.ConnectionTimeout:= strToInt(Fini.ReadString('CRM', 'TimeOut', '3000'));
          DBConn.Connected :=True; 试想若文件Config.INI不小心被删除了,你的代码就有很大的问题
      

  3.   

    try...except在delphi里F9运行程序不起作用。
    在windows的“资源管理器”里运行exe文件,应该可以。
      

  4.   

    还是根据DBConn返回的错误代码去判断吧
      

  5.   

    这么用比较少啊,Access没有自己的网络连接机制或者进程,完全靠网络协议,有时候不靠谱!
      try   Except
        on E:exception do 
          Application.MessageBox('与数据库连接失败'+e.message, '提示', 64); 
      end; 
      

  6.   

    问题没有得到解决,如果是SQL SERVER肯定正常。就这个问题论这个问题吧,F9后连接失败跳过执行失败提示语句。 
      try 
      。。
      Except 
          Application.MessageBox('与数据库连接失败', '提示', 64); 
          FrmDB:=TFrmDB.Create(self); 
          FrmDB.ShowModal; 
          Abort; 
      end; 
      跳过不执行失败提示内容。如果直接在WINDOWS下运行EXE文件,将有以下两个提示
    (1)“Project1.exe 遇到问题需要关闭。我们对此引起的不便表示抱歉。。”
    (2)然后再提示以下内容
    ---------------------------
    Application Error
    ---------------------------
    Exception EOleException in module Project1.exe at 001BBBA6.'\\192.168.10.92\a\Stock.mdb'不是一个有效的路径。 确定路径名称拼写是否正确,以及是否连接到文件存放的服务器。.
    ---------------------------
    确定   
    ---------------------------如果有第二个提示也可以接受,但第一提示却让人纳闷。