不管receivetime是什么值,存入数据库后access显示都是0:00:00,sql explorer显示都是1899-12-30,不解ing
ADOQueryThread.Close;
ADOQueryThread.SQL.Clear;
ADOQueryThread.SQL.Add('select * from '+WaveTablename);
ADOQueryThread.Open;
ADOQueryThread.Append;
with tmpPointWavesharp,ADOQueryThread do
begin
FieldByName('PointID').AsInteger:=PointID;
FieldByName('SWarning').AsFloat:=SWarning;
FieldByName('VWarning').AsFloat:=VWarning;
FieldByName('AWarning').AsFloat:=AWarning;
FieldByName('TWarning').AsFloat:=TWarning;
FieldByName('SAlarm').AsFloat:=SAlarm;
FieldByName('VAlarm').AsFloat:=VAlarm;
FieldByName('AAlarm').AsFloat:=AAlarm;
FieldByName('TAlarm').AsFloat:=TAlarm;
FieldByName('Sort').AsString:=tmpPointWavesharp.Sort;
FieldByName('ReceiveTime').AsDateTime:=Receivetime;
FieldByName('AnalyseFrequency').AsInteger:=AnalyseFrequency;
FieldByName('SamplingLength').AsInteger:=SamplingLength;
TBlobField(FieldByName('WaveData')).LoadFromStream(WaveSharpStream);
end;
ADOQueryThread.Post;
ADOQueryThread.Close;
ADOQueryThread.SQL.Clear;
ADOQueryThread.SQL.Add('select * from '+WaveTablename);
ADOQueryThread.Open;
ADOQueryThread.Append;
with tmpPointWavesharp,ADOQueryThread do
begin
FieldByName('PointID').AsInteger:=PointID;
FieldByName('SWarning').AsFloat:=SWarning;
FieldByName('VWarning').AsFloat:=VWarning;
FieldByName('AWarning').AsFloat:=AWarning;
FieldByName('TWarning').AsFloat:=TWarning;
FieldByName('SAlarm').AsFloat:=SAlarm;
FieldByName('VAlarm').AsFloat:=VAlarm;
FieldByName('AAlarm').AsFloat:=AAlarm;
FieldByName('TAlarm').AsFloat:=TAlarm;
FieldByName('Sort').AsString:=tmpPointWavesharp.Sort;
FieldByName('ReceiveTime').AsDateTime:=Receivetime;
FieldByName('AnalyseFrequency').AsInteger:=AnalyseFrequency;
FieldByName('SamplingLength').AsInteger:=SamplingLength;
TBlobField(FieldByName('WaveData')).LoadFromStream(WaveSharpStream);
end;
ADOQueryThread.Post;
解决方案 »
- cxgrid 数据显示格式
- 怎么读取directorylistbox、drivecombobox、filelistbox里的一个文件
- 如何展开ListView的subitems(CheckBoxes := True)
- 用ado在sqlserver中新生成一条记录的时候如何直接获得这条记录的自动生成序号?
- delphi 2007 安装问题,十万火急
- 50分就问一个小问题
- 按button1时创建Access数据库及表?
- 停靠问题
- 请问下各位前辈有没有通过识别图像的原理来写过计牌器的,请指点下!!!
- 怎样读取.MB(字码表)文件?
- 关于delphi存储过程控件使用碰到的一个问题,在线等待!!!
- 一个利用API切换左右声道的问题
with tmpPointWavesharp,ADOQueryThread do
这个写法不是好习惯,容易产生歧义。第二,delphi里面的日期是从1899/12/30开始计算的,
所以,你的日期显示为1899/12/30说明你写进数据库的是0。你的Receivetime 什么类型,什么内容。
我也知道0表示1899-12-30,但我需要解决的是存储问题,可能access+ado与delphi6.0兼容性不好
Access的日期时间型的字段值要以#来辩认。倒如:
insert into table1 (a,rq) values ('123','#2002-11-12#')才正确,否则,无法存入日期时间值。
你可以在你的程序中加入#。试试:
ADOQueryThread.FieldByName('ReceiveTime').AsDateTime:=
strtodatatime('#'+datatimetostr(Receivetime)+'#');
这个不行吗?我的怎行!!!
控制面板中的短日期格式。建议用FormatDateTime("m//d//y", date)TDateTime是一实数,时间是小数部分。