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的框没法输入任何东西,很奇怪,怎么解决吖?

急需解答~
展开
 我来答
532gplt587
2011-08-27 · TA获得超过323个赞
知道答主
回答量:514
采纳率:0%
帮助的人:296万
展开全部
分开写,再弄个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
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
班丘曼岚0y
2011-08-26 · 超过24用户采纳过TA的回答
知道答主
回答量:88
采纳率:0%
帮助的人:67.7万
展开全部
问题1,1899/12/30 表示的是 0 TDateTime 类型其实是时间差值。
可以赋值 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'
这种我很早以前就不写了。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
changtaiyq
2011-08-26
知道答主
回答量:20
采纳率:0%
帮助的人:17.4万
展开全部
哎~这个想象力不够,看不出你在问啥,要不站内联系,你把代码发过来?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式