with DAOQuery1 do
    try
      begin
        Close;
        SQL.Clear;
        SQL.Add('select * from '+cmbYear.Text+cmbMonth.Text);
        Open;
      end;
    except
      begin
        Close;
        SQL.Clear;
        SQL.Add('select * into '+cmbYear.Text+cmbMonth.Text+' from 省站');
        Execute(0);
        Close;
        SQL.Clear;
        SQL.Add('select * from '+cmbYear.Text+cmbMonth.Text);
        Open;
      end;
    end;
为什么报错后except 后面的代码执不了?

解决方案 »

  1.   

     with DAOQuery1 do
        try
          begin
            Close;
            SQL.Clear;
            SQL.Add('select * from a');
            Open;
          end;
        except
          begin
            Close;
            SQL.Clear;
            SQL.Add('select * into a from b');
            Execute(0);
            Close;
            SQL.Clear;
            SQL.Add('select * from a');
            Open;
          end;
        end;当不存在a表时,会报错,但为什么报错后,except后面的代码执行不了?没有从已有的B表复制生成A表,并显示出来
      

  2.   

    你怎么知道except后面的代码执行不了,你跟踪了吗?
    把Execute(0); 改成ExecSql;试下
      

  3.   

    你有没有打断点执行啊?在"Except"后面的Close;行打断点看看有没有执行到这一行,
    还是执行了但是Except后的语句也出错了!
      

  4.   

    换个细考方法
    先执行下面语句
    select count(1) from dbo.sysobjects where id = object_id(N'a') and OBJECTPROPERTY(id,N'IsUserTable') = 1
    返回值=1则说明a表存在
    if 返回值=0 then
    begin
      SQL.Add('select * into a from b '); 
      Execsql;
    end;