update表时修改时间,怎么都不能成功.我调试运行了,在SQL里查那个语句也是对的,后来发现是时间字段的类型有问题,就把那个字段改成了文本类,但是后来编译还是有问题,请问各位大侠改怎么办呀?
CString strCurTime = time.Format("%Y-%m-%d %H:%M:%S");
sql.Format("UPDATE tempdata SET date='%s', actual_counts= %d Where pro_name='%s' and exp_name= %d",strCurTime,m_iCountNo,projectname,experimentn);
这里就是date出了问题

解决方案 »

  1.   


    把时间的 '%s'改为 #%s#ACCESS 就是这么怪!我也吃过苦头!都是过来人,呵呵!
      

  2.   

    这位高手,我用你的办法试了一下,好像还是不能修改呀,你说把时间的  '%s ' 改为 #%s# ,
    是变成SET date= #%s#吗?
    那我在mdb的表里面已经把时间类型改成了文本类型,是不是再要改成日期型呀,还是就是文本类型?  我试了怎么还是有问题呀?
      

  3.   

    sql.Format("UPDATE tempdata SET date= #%s#, actual_counts= %d Where pro_name= '%s ' and exp_name= %d",strCurTime,m_iCountNo,projectname,experimentn);
    ACCESS必须这样使用,
    如果考虑更换为其他程序库是没有问题,则可以使用
    command和parameter,这样可以产生出标准的语句,使用起来比较方便。
      

  4.   

    如果是字符串LZ的应该没有问题,直接输出SQL语句,然后在ACCESS中修改,看能不能修改成功,怀疑是:字符串长度不够
      

  5.   

    先确认在ACCESS数据库中执行成功。
      

  6.   

    我按你的方法做了字段类型是日期型,还是不行,但是如果不修改时间的话,那个update语句完全没有问题。我改成文本类型也是那里的问题,真是很怪.
    各位大侠还有没有其他办法呀?急!!!!!!
    sql.Format("UPDATE tempdata SET date=#%s#,actual_counts=%d Where pro_name='%s' and exp_name=%d",strCurTime,10,"12345",32);
    pdbase.m_pAppProgSet->Open((_variant_t)sql,
    pdbase.m_pConnectionPlat.GetInterfacePtr(),
    adOpenDynamic,adLockOptimistic,adCmdText);
      

  7.   

    sql.Format("UPDATE tempdata SET date=#%s#,actual_counts=%d Where pro_name= '%s ' and exp_name=%d",strCurTime,10,"12345",32); 
    这个语句在ACCESS中能否执行成功?
    对了,最有可能是date是一个关键字,LZ需要把这个字段修改一下,修改为其他的,如Update_date再试试
      

  8.   


    是的,DATE 是关键字,换个列名。
      

  9.   

    sql.Format("UPDATE tempdata SET [date]= '%s ', actual_counts= %d Where pro_name= '%s ' and exp_name= %d",strCurTime,m_iCountNo,projectname,experimentn); 
    //date是关键字,作为字段名,加[]