在编译运行时会出现:
Project myabc.exe raised exception class EVariantError with message 
'Invalid variant type conversion' .Process stopped. ...但直接运行编译好的程序时没有报错。
我现在是用ODBC来连本地的ACCESS数据库。如果改成Jet 4.0 OLE DB来连的话不会报错。
请教大虾,这是什么原因?如何解决?

解决方案 »

  1.   

    这是数据转换是报的一个异常,在运行exe是会被你的except捕获的所以不会报出来
    你把代码贴出来看看
      

  2.   

    什么地方的数据转换?
    begin
      Application.Initialize;
      Application.CreateForm(TFrmMain, FrmMain);
      Application.CreateForm(TFrmGlobal, FrmGlobal); //出错时光标停在这里
      Application.CreateForm(TFrmAbout, FrmAbout);
      Application.Run;
    end.
      

  3.   

    TFrmGlobal的OnCreate事件里应该有异常代码吧?
      

  4.   

    你用'Build All Projects'编绎试试看
      

  5.   

    TFrmGlobal的OnCreate事件里有异常代码,把它贴出来,或者按F7单部执行看看。
      

  6.   

    我用F7单步跟踪时,在
    执行Application.CreateForm(TFrmMain, FrmMain);这句时就弹出出错框了。
    在TFrmGlobal的OnCreate事件里没有代码,
    TFrmMain的OnCreate事件里代码为:
        Application.OnHint := ShowHint;
        //将进度条加入到状态条的第二格里
        ARect := StatusBarMain.ClientRect;
        ProgressBarMain.Parent := StatusBarMain;
        ProgressBarMain.Left   := StatusBarMain.Panels.Items[0].Width + 5;
        ProgressBarMain.Top    := 4;
        ProgressBarMain.Height := StatusBarMain.ClientHeight - 6;
        ProgressBarMain.Width  := StatusBarMain.Panels.Items[1].Width - 8;再次说明一下,我觉得和用ODBC连数据库有关,因为我用Jet 4.0 OLE DB来连的话没有报错。
      

  7.   

    TO:visualpojin(飘飘) ( )  
    ======================================= 
      你用'Build All Projects'编绎试试看
    =========================================
    执行时没有出错。  
     
      

  8.   

    我用F7单步跟踪时,在
    执行Application.CreateForm(TFrmMain, FrmMain);这句时就弹出出错框了。
    //////////////////////////////////////////////////////////我觉得不太可能报你说的错误'Invalid variant type conversion' ,至少要执行到FrmMain的OnCreate里面的代码才能出现错误。F7是逐语句执行的。