delphi+sql server 2000 时间显示有问题 新增的dbedit控件有问题
有4个dbedit框名字为db1,db2,db3,db4db1,db2,db3是最早建立的框db3.text:=db3.Text:=DateTimeToStr(now()...
有4个dbedit框 名字为 db1,db2,db3,db4
db1,db2,db3是最早建立的框
db3.text:=db3.Text:=DateTimeToStr(now());
搁了一段时间 更改了程序 加了一个dbedit框 db4
问题出现了:
问题1
表单的onshow事件里面写了
db3.clear;
db3.text:=db3.Text:=DateTimeToStr(now());
但是运行时db3也没清除,而且显示的时间为1899/12/30
这是为什么? 怎么解决?
问题2
db4的datasource和datafield都已经填写
运行程序的时候,最早的db1和db2都可以正常输入写入,但是db4的框没法输入任何东西,很奇怪,怎么解决吖?
急需解答~ 展开
db1,db2,db3是最早建立的框
db3.text:=db3.Text:=DateTimeToStr(now());
搁了一段时间 更改了程序 加了一个dbedit框 db4
问题出现了:
问题1
表单的onshow事件里面写了
db3.clear;
db3.text:=db3.Text:=DateTimeToStr(now());
但是运行时db3也没清除,而且显示的时间为1899/12/30
这是为什么? 怎么解决?
问题2
db4的datasource和datafield都已经填写
运行程序的时候,最早的db1和db2都可以正常输入写入,但是db4的框没法输入任何东西,很奇怪,怎么解决吖?
急需解答~ 展开
3个回答
展开全部
分开写,再弄个Query1查
with ADOQuery2 do
begin
adoquery2.sql.add('select count(*) as Exists_ID from Student_info');
adoquery1.sql.add('where 学号='''+xm+'''');
open
if (FieldByName('Exists_ID').AsInteger=0) then
begin
ShowMessage('无符合条件的记录');
exit;
end;
end
with ADOQuery1 do
begin
close;
sql.clear;
adoquery1.sql.add('select * from Student_info');
adoquery1.sql.add('where 学号='''+xm+'''');
open;
end
with ADOQuery2 do
begin
adoquery2.sql.add('select count(*) as Exists_ID from Student_info');
adoquery1.sql.add('where 学号='''+xm+'''');
open
if (FieldByName('Exists_ID').AsInteger=0) then
begin
ShowMessage('无符合条件的记录');
exit;
end;
end
with ADOQuery1 do
begin
close;
sql.clear;
adoquery1.sql.add('select * from Student_info');
adoquery1.sql.add('where 学号='''+xm+'''');
open;
end
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
问题1,1899/12/30 表示的是 0 TDateTime 类型其实是时间差值。
可以赋值 adoQuery1.Edit;
aodQuery1.FIelds[0].AsVariant := Null;
adoQuery1.Post;
问题2,db4对应的字段类型是不是 AsString 不能获取的?
可以赋值 adoQuery1.Edit;
aodQuery1.FIelds[0].AsVariant := Null;
adoQuery1.Post;
问题2,db4对应的字段类型是不是 AsString 不能获取的?
更多追问追答
追问
但是我需要把当前时间写入到数据库time字段里面,如果赋值到adoQuery1.Edit;,结果是什么?那time字段不就为空了?
刚开始写这个程序时运行都正常,隔了半个月要修改了,就显示不对了。不过,刚开始运行输入到数据库里就是1899/12/30 ,下一条记录就能正常显示和输入当前时间了。为什么最开始的时候不对?
数据库里db4对应的字段类型是nchar,db1和db2在数据库里定义的也是nchar啊,就可以输入,只有后来加的db4不行。。。
追答
用 DB 数据感知控件的人都会犯这样的错误。
直接用控件的属性输入值,确实很方便,但是这个毕竟不是正途。
在直接操作 AdoQuery,做数据变更。
像
db3.clear;
db3.text:='asfaf'
这种我很早以前就不写了。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
哎~这个想象力不够,看不出你在问啥,要不站内联系,你把代码发过来?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询