这是什么的BUG??(300分)

  • 主题发起人 主题发起人 cAkk
  • 开始时间 开始时间
C

cAkk

Unregistered / Unconfirmed
GUEST, unregistred user!
一段程序,大概是:

var dt:tdatetime;
begin
dt:=now;
query1.sql.text:='update .....';
query1.parambyname('dtime').asdatetime:=dt;
...
end;
在pwin98上面测试一切正常,但是放到NT上面却只保存了date部分,没有
time部分.
(delphi5+odbc98+access)

NT的BUG?
odbc98的BUG?
我程序的BUG?

有人遇到类似情况码?
 
我想知道.
 
有可能是 ODBC 的access驱动程序的问题?
 
你不妨安装一个Office2000/Access2000试试。
我觉得跟Access的驱动有关。
 
这个问题我碰到过,是程序的问题。
你实际上只得到了日期(dt:=now),而没有得到时间,在98下,系统会提供一个默认时间,在nt下则不会。正确做法是。
Date:=now;
time:=now;
query1.parambyname('dtime').asdatetime:=data+time;(不能直接加)
 
starlyq:不对吧,NOW取得是当前的日期和时间,
应该如下:
D:=DATE;
T:=TIME;
query1.parambyname('dtime').asdatetime:=d+t;

 
应该不是 now 的问题,
我还碰到now会出问题的
 
就是,NOW还会出问题?
 
更正:“我还碰到now会出问题的”
应该是:“我还 没 碰到now会出问题的”

指误。
 
3h: 我用的是access97数据库

to all: now函数返回的是一个TDatetime类型的,应该包括time部分,而不是
仅仅得到一个"默认时间".
 
那是不是需要在NT下从新编译呢?
 
>>那是不是需要在NT下从新编译呢?
为什么?
 
我说可能,但还没有具体理由。
 
cakk:
要在NT下从新编译结果如何
 
cAkk:
> 在pwin98上面测试一切正常,但是放到NT上面却只保存了date部分,没有
> time部分.

如何验证的? 程序中显示出来? 还是用Access打开数据库看的?
 
用Access打开看的,在98上保存了time部分,在NT上time部分是空的.
 
我试了一下,并没有出现你说的情况.在98下编译,直接将执行文件复制到nt下.

dt:=now();
odbcdatabase1.Connected:=true;
odbcquery1.SQL.clear;
odbcquery1.SQL.Text:='update bb_data set bb_date=:dtime';
odbcquery1.parambyname('dtime').asdatetime:=dt;
odbcquery1.ExecSQL;

看来跟具体的环境有关.

98第二版 + odbc98 + access97
nt4(中文) + sp5 + odbc98 + access97

 
我改用sql server 7.0就解决了.

现在我估计是因为我那台NT以前装过sql server 7.0,结果没有装成功,
但是又删不掉,一直留在机器上,可能把ODBC驱动搞坏了.
 
后退
顶部