用ADOTable或者ADODataset(CommandType := cmdTable / cmdTableDirect)连接Access表(SQL Server也一样)的时候,在设计时打开完全没问题,但是在运行时打开就马上抛出异常:
   Project ABC.exe raised exception class EVariantTypeCastError with message 'Could not convert variant of type (Null) into type (String)'.Process Stopped. Use Step or Run to continue.抛出异常后若继续执行则表也打开了,无不良反应。该怎么处理啊?

解决方案 »

  1.   

    找到出错的地方,使用try except处理,再except中不写代码。还有就是如果程序是在设计期把dataset的active=true的话,使用代码控制。
      

  2.   

    var
      ADO: TADODataSet;
    begin
      ADO :=TADODataSet.Create(nil);
      ADO.ConnectionString :=
        'Provider=MSDASQL.1;Persist Security Info=False;Data Source=ABC';
      ADO.CommandType := cmdTable;
      ADO.CommandText := 'test';
      ADO.Open; // 这里抛出异常
      ……代码有什么问题?