用microsift oledb provider for odbc drivers
with adoquery1 do
    begin
        delete;
        close;
        sql.Clear;
        sql.add('select * from MainTab where datepart(yyyy,checkDate)=year(date()));
        Open;
    end
执行sql的时候就报“[Microsoft][ODBC Microsoft Access Driver] 参数不足,期待是1”。但是用microsoft jet4.0 oledb provider的驱动,不报错。
想不通是怎么回事。求救!!

解决方案 »

  1.   

    try this:sql.add('select * from MainTab where datepart(''yyyy'',checkDate)=year(date())');
      

  2.   

    使用ADO吧,ODBC MICROSOFT已在维护阶段了。
      

  3.   

    sql.add('select * from MainTab where datepart("yyyy",checkDate)=year(date())');
    程序中的语句确实如此。但是总通不过。sigh
      

  4.   

    sql.add('select * from MainTab where datepart("yyyy",checkDate)=year(date())');
    "yyyy"的引号不对,应该是''而非"
      

  5.   

    贴上的''与"看不出来,应该是两个单引号而非一个双引号(yyyy的前后各2个单引号)
      

  6.   

    select * from MainTab where year(checkDate)=year(date())
    我奇怪的是,你后面知道用year取年,为什么前面却用个datepart
      

  7.   

    谢谢ysai,我怎么发现这个问题呢。呵呵。但是很奇怪为什么datepart(yyyy,checkdate)=year(date)就不行呢?