VB系统连的数据库是SQL Server,SQL Server数据库放在服务器上,数据表中某个Field用getdate()直接取系统的当前时间,可在用户机器上新增记录时,该Field的值为空,而在有些机器上又能得到,究竟是何原因?请高手赐教

解决方案 »

  1.   

    怎么写法的?SQL语句怎么样的
      

  2.   

    理论上是由于你本机没update,或者刷新的问题你应该是在数据库中设计表中该字段缺省值为GetDate()然后在程序里面insert一个数据这个时候你是取不到这个字段的值的只有你update后,再打开一次recordset,这时候你才能渠道GetDate()写入该字段的值
      

  3.   

    我是在数据库中设计表中该字段缺省值为GetDate(),在代码里是这样写的
    dim rs as new adodb.recordsetrs.open 表名,conn,1,3 'conn为数据库连接字符串
    rs.addnew后是
    rs.update
    这就是更新了啊关键是开发系统的机上新增时能取到时间,而在用户的电脑上取不到!
      

  4.   

    我不是说了嘛?update后,再次open基本都可能看到这个值,当然,还存在定位的问题。
    recordset addnew update 以后,指针指向下一条记录,你是取不出值的(印象中)。
    GetDate()只有update成功后才会有。如果同样程序你运行在开发系统有,运行在用户系统没有
    就说明还是update的问题,开发系统(或者在服务器上运行程序)由于连接数据库快,在你取这个值的时候,update已经成功。而在用户电脑上,你取记录内容的时候,update还没完成,所以你取不到值。
    最好的方法是
    addnew
    update 
    重新打开rs
    找到刚才更新的记录
    取出值
    这样,肯定可以取出(只要你企业管理器里面可以看到数据,就一定取的出)或者你的取出数据前做个延迟,判断一下update完成情况。