我用的方法是在数据库服务器上加了个datetime的字段,每次客户端启动的时候都用Getdate()获得服务器时间写到这个字段当中,然后客户端再获取这个时间,执行后记录居然没有被修改,怎么回事?我这个方法可以吗?
CDatabase db;
strsql="update EXAME set TIME=getdate() where NAME='"+m_strUser+"'";
db.ExecuteSQL(strsql);

解决方案 »

  1.   

    TRACE出你的sql语句,直接在数据库里执行,能更新吗?
      

  2.   

    CDatabase db;
    strsql="update EXAME set TIME=getdate() where NAME='"+m_strUser+"'";
    db.ExecuteSQL(strsql);
    数据库没有打开啊
      

  3.   

    你说的方法没问题
    花点时间仔细DEBUG一下程序吧
      

  4.   

    db.open()成功之后再ExecuteSQL
      

  5.   

    在服务器上,写一个存储过程,在客户机上调用些存储过程,我写程序凡是要修改添加数据的,用的都是存储过程,凡是读取的,一概直接执行SQL语句。这样比较的好维护!
      

  6.   

    SqlServer里面有一个TimeStamp字段,每次行被更新的时候自动写入现在时间。
      

  7.   

    有两种可能
    1、数据库没打开
    2、你创建数据库连接的默认数据库下,没有EXAME这个表
    比如你的数据库连接字段是_T("Driver={SQL Server}; Server=192.168.0.1;" "Trusted_Connection=no;" "Database=master; Uid=sa; Pwd=sa;")
    但你的表在XXXX数据库下,那么如果你写的SQL语句中没有带数据库名,那语句默认是执行在master库下,那也就导致你的表没有更新给你的建议,打开SQL SERVER自己的事件跟踪器跟踪数据库执行
      

  8.   

    在服务器上用存储过程,然后使用getdate就可以了