运行一个数据导入工具,执行导入功能会弹出如下错误信息运行一个数据导入工具,执行导入功能会弹出如下错误信息,请帮忙分析。该功能是放在线程内,这是否有关系。我单步运行或者数据有十几条,不会出现错误在有的机子运行会,有的又不会——-
---------------------------
Debugger Exception Notification
---------------------------
Project DataQryTool.exe raised exception class EOleException with message '参数类型不正确,或不在可以接受的范围之内,或与其他参数冲突。'. Process stopped. Use Step or Run to continue.
---------------------------
OK   Help   
---------------------------

解决方案 »

  1.   

    请描述清楚你的导入动作,和你导入表的格式。和你使用的控件!问题1:
    如果是我的话,我会使用ADO组件,至于导入的方式,可能会通过数据库上的一个存储过程来完成,每次插入会使用这个存储过程。另外,请确认你导入的字段中是否有复合键?问题2:
    确认插入的字段长度是否超出了要求,另外也有可能是类型的不正确,例如12.0 导入到INT类型,或是 日期类型中放了空或是一个字符串什么的。请确认。
      

  2.   

    怎么讲啊。。你所谓的异常数据可否指个例子呢?有时候,是弹出如下错误信息:
    ---------------------------
    Debugger Exception Notification
    ---------------------------
    Project DataQryTool.exe raised exception class EInvalidGridOperation with message 'Grid index out of range'. Process stopped. Use Step or Run to continue.
    ---------------------------
    OK   Help   
    ---------------------------
      

  3.   

    holyten(飞翔的云) :   导入功能是放到线程里面的,源数据使用ADOQuery,目标数据使用ADOTable首先判断两个固定字段是否存在,如果有,以这个两个字段为主查询,目标数据是否已有源数据了,如果有不在导入。如果没有则执行导入。
      导入的动作是从源数据ADOQuery取出相应值赋给相应的目标数据ADOTable字段。声明:源数据表与目标数据表的表结构是一模一样的。  问题在次描述,有时候虽然弹出了这个错误信息,但导入还是有成功的。有时候,导入一两条,有时候全部导入。。
      这是啥问题哦,,心急着,帮帮忙,谢啦!
      

  4.   

    检查你的数据中是否含有":"号
    或将你的ADOQuery的ParamCheck设为false试试
    (参数类型不正确,或不在可以接受的范围之内,或与其他参数冲突。---一般由:引起)
      

  5.   

    keiy() :谢谢,你会去检查一下的。现在的情况是,我把导入功能取出不放到线程里,即去掉使用线程,不会有啥问题哦!procedure TImport.Execute;
    {*数据导入功能}
    var
      IsCount : Boolean;
      VJ,ViCount : Integer;
    begin
      CoInitialize(nil);
      IsCount := False;
      ViCount := 0 ;
      FAdqSource.Connection.BeginTrans ;
      try
      执行从另一个数据表查询,接着把数据导到另一个数据表
        end;
        RecordCount := ViCount;
        FAdqSource.Connection.CommitTrans ;
        Synchronize(ShowMessage);
      finally
        CoUninitialize;
        Terminate;
      end;
    end;