我有一段SQL语句,要写入到一个Delphi事件里去,可是最后一句SQL太复杂而且太长了,我不管怎么写都出错,
不知道大家高见如何,急用,拜托各位了啊!  谢谢谢谢谢
SQL语句如下:
insert into rs_kaoqin
       select 编号 as 编号,姓名 as 姓名,分部 as 分部,日期 as 日期,早班 as 早班,
       中班 as 中班,晚班 as 晚班,夜班 as 夜班,上班 as 上班,迟到I次 as 迟到I次,
       迟到I分 as 迟到I分,迟到II次 as 迟到II次,迟到II分 as 迟到II分,早退次 as 早退次,
       早退分 as 早退分,缺勤 as 缺勤,请假 as 请假,旷工 as 旷工,一般加 as 一般加,
       双休加 as 双休加,节日加 as 节日加,加班 as 加班,申请补休 as 申请补休,
       节假工时 as 节假工时,漏打 as 漏打,补贴 as 补贴,定额 as 定额,出勤 as 出勤,
       备注 as 备注
from OpenDataSource('Microsoft.Jet.OLEDB.4.0','Data Source="d:\1.xls";User ID=;Password=;Extended properties=Excel 8.0')...[kaoqin$] 然后我的Delphi语句是这样:
'+t2+','+t3+';'+t4+';'+t5+';'+t6+';
  t2:='Microsoft.Jet.OLEDB.4.0'
  t3:='Data Source="d:\1.xls"';
  t4:='User ID=';
  t5:='Password=';
  t6:='Extended properties=Excel 8.0';
  adoquery1.Close;
  adoquery1.SQL.Clear;
  //adoquery1.SQL.Add('');
  adoquery1.SQL.Add('insert into rs_kaoqin');
  adoquery1.SQL.Add('select 编号 as 编号,姓名 as 姓名,分部 as 分部,');
  adoquery1.SQL.Add('日期 as 日期,早班 as 早班,中班 as 中班,晚班 as 晚班,');
  adoquery1.SQL.Add('夜班 as 夜班,上班 as 上班,迟到I次 as 迟到I次,');
  adoquery1.SQL.Add('迟到I分 as 迟到I分,迟到II次 as 迟到II次,迟到II分 as 迟到II分,');
  adoquery1.SQL.Add('早退次 as 早退次,早退分 as 早退分,缺勤 as 缺勤,');
  adoquery1.SQL.Add('请假 as 请假,旷工 as 旷工,一般加 as 一般加,双休加 as 双休加,');
  adoquery1.SQL.Add('节日加 as 节日加,加班 as 加班,申请补休 as 申请补休,');
  adoquery1.SQL.Add('节假工时 as 节假工时,漏打 as 漏打,补贴 as 补贴,');
  adoquery1.SQL.Add('定额 as 定额,出勤 as 出勤,备注 as 备注');
  adoquery1.SQL.Add('from OpenDataSource(''+t2+','+t3+';'+t4+';'+t5+';'+t6+'')...[kaoqin$]');
  adoquery1.ExecSQL;
改写n次,死活都错,实在不懂了,请教了!

解决方案 »

  1.   

    然后我的Delphi语句是这样:
    '+t2+','+t3+';'+t4+';'+t5+';'+t6+';
      t2:='Microsoft.Jet.OLEDB.4.0'
    中间的
      '+t2+','+t3+';'+t4+';'+t5+';'+t6+';  不要,是忘了删了
      

  2.   

    project project1.exe raised exception class EOLeException with message
    '[Microsoft][ODBC Excel Driver] FROM 子句语法错误。'.Process stopped.
    Use Step or Run to contiue .谢谢关心了,不管我怎么改写最后那一句都是这个错误信息,郁闷。
      

  3.   

    估计是 备注 as 备注' 后面没有空格,和'from OpenDataSource 连接在一起了
      

  4.   

    把你的最后生成的SQL显示出来,这样看太费力了
      

  5.   

    那是最后的SQL语句啊adoquery1.Close;
      adoquery1.SQL.Clear;
      //adoquery1.SQL.Add('');
      adoquery1.SQL.Add('insert into rs_kaoqin');
      adoquery1.SQL.Add('select 编号 as 编号,姓名 as 姓名,分部 as 分部,');
      adoquery1.SQL.Add('日期 as 日期,早班 as 早班,中班 as 中班,晚班 as 晚班,');
      adoquery1.SQL.Add('夜班 as 夜班,上班 as 上班,迟到I次 as 迟到I次,');
      adoquery1.SQL.Add('迟到I分 as 迟到I分,迟到II次 as 迟到II次,迟到II分 as 迟到II分,');
      adoquery1.SQL.Add('早退次 as 早退次,早退分 as 早退分,缺勤 as 缺勤,');
      adoquery1.SQL.Add('请假 as 请假,旷工 as 旷工,一般加 as 一般加,双休加 as 双休加,');
      adoquery1.SQL.Add('节日加 as 节日加,加班 as 加班,申请补休 as 申请补休,');
      adoquery1.SQL.Add('节假工时 as 节假工时,漏打 as 漏打,补贴 as 补贴,');
      adoquery1.SQL.Add('定额 as 定额,出勤 as 出勤,备注 as 备注');
      adoquery1.SQL.Add('from OpenDataSource(''+t2+','+t3+';'+t4+';'+t5+';'+t6+'')...[kaoqin$]');
      adoquery1.ExecSQL;
    嗯,要不,大家说说这句话怎么加到delphi里面去阿?
    from OpenDataSource('Microsoft.Jet.OLEDB.4.0','Data Source="d:\1.xls";User ID=;Password=;Extended properties=Excel 8.0')...[kaoqin$]
      

  6.   

    adoquery1.sql.text :='insert into rs_kaoqin
           select 编号 as 编号,姓名 as 姓名,分部 as 分部,日期 as 日期,早班 as 早班,
           中班 as 中班,晚班 as 晚班,夜班 as 夜班,上班 as 上班,迟到I次 as 迟到I次,
           迟到I分 as 迟到I分,迟到II次 as 迟到II次,迟到II分 as 迟到II分,早退次 as 早退次,
           早退分 as 早退分,缺勤 as 缺勤,请假 as 请假,旷工 as 旷工,一般加 as 一般加,
           双休加 as 双休加,节日加 as 节日加,加班 as 加班,申请补休 as 申请补休,
           节假工时 as 节假工时,漏打 as 漏打,补贴 as 补贴,定额 as 定额,出勤 as 出勤,
           备注 as 备注
    from OpenDataSource('Microsoft.Jet.OLEDB.4.0'+#39+','+#39+'Data Source="d:\1.xls";User ID=;Password=;Extended properties=Excel 8.0'+#39+')...[kaoqin$]';
    adoquery1.ExecSQL;
      

  7.   

    add('FROM OpenDataSource(''MICROSOFT.JET.OLEDB.4.0''',''Excel 5.0;HDR=YES;IMEX=2;DATABASE=%s'')...[%s$]');
      

  8.   

    liuqifeiyu(liuqi)   兄  我按你的试了试,结果是这样的:
      [Error] Unit1.pas(79): Unterminated string
      [Error] Unit1.pas(80): Missing operator or semicolon
      [Error] Unit1.pas(80): Illegal character in input file: '编' ($B1E0)
      [Error] Unit1.pas(80): Illegal character in input file: '姓' ($D0D5)
      [Error] Unit1.pas(80): Illegal character in input file: '分' ($B7D6)
      [Error] Unit1.pas(80): Illegal character in input file: '日' ($C8D5)
    ............还是晕...
      

  9.   

    帅哥, 你的意思是说最后一句这样写吗?
    adoquery1.SQL.Add('FROM OpenDataSource(''MICROSOFT.JET.OLEDB.4.0''',''Excel 8.0;User ID=;Password=;DATABASE="d:\1.xls"'')...[kaoqin$]');如果这样的话,它会报错,说:
    Build
      [Error] Unit1.pas(89): Too many actual parameters
      [Error] Unit1.pas(89): Statement expected, but expression of type 'Extended' found
      [Error] Unit1.pas(89): ':=' expected but '=' found
      [Error] Unit1.pas(89): ':=' expected but '=' found
      [Error] Unit1.pas(89): Missing operator or semicolon
      [Error] Unit1.pas(89): Unterminated string
      [Error] Unit1.pas(90): Unterminated string
      [Fatal Error] Project1.dpr(5): Could not compile used unit 'Unit1.pas'何解呢?....惭愧的说...我还不明白错了什么....