我需要在一个checkbox里写段程序,来控制数据的更新。
程序如下:
if checkbox3.Checked=true then begin
if messagebox(0,确定添加?','提示',MB_YESNO+MB_ICONQUESTION+MB_DEFBUTTON2)=IDYES then
begin
dm.DQ1.Edit;
dm.DQ1.FieldByName('receive').AsString:='T';
dm.DQ1.FieldByName('r_date').AsDateTime:=now;
dm.DQ1.Post;
end
else checkbox3.State:=cbunchecked;
end
else begin if messagebox(0,确定取消?','提示',MB_YESNO+MB_ICONQUESTION+MB_DEFBUTTON2)=IDYES then
begin
dm.DQ1.Edit;
dm.DQ1.FieldByName('receive').AsString:='F';
dm.DQ1.FieldByName('r_date').Clear;
dm.DQ1.Post;
end
else checkbox3.State:=cbchecked;
end;单独运行dm.DQ1.FieldByName('r_date').Clear;的时候正常,如果先执行其他程序再执行这条就报错,提示“无法更新定位行,一些值可能已在最后一次读取后已更改”。
有没有高手知道这是为什么?问题就出在dm.DQ1.FieldByName('r_date').Clear;这一句上,把这一句屏蔽就正常了。可是怎么看,这一句也没有问题啊?
程序如下:
if checkbox3.Checked=true then begin
if messagebox(0,确定添加?','提示',MB_YESNO+MB_ICONQUESTION+MB_DEFBUTTON2)=IDYES then
begin
dm.DQ1.Edit;
dm.DQ1.FieldByName('receive').AsString:='T';
dm.DQ1.FieldByName('r_date').AsDateTime:=now;
dm.DQ1.Post;
end
else checkbox3.State:=cbunchecked;
end
else begin if messagebox(0,确定取消?','提示',MB_YESNO+MB_ICONQUESTION+MB_DEFBUTTON2)=IDYES then
begin
dm.DQ1.Edit;
dm.DQ1.FieldByName('receive').AsString:='F';
dm.DQ1.FieldByName('r_date').Clear;
dm.DQ1.Post;
end
else checkbox3.State:=cbchecked;
end;单独运行dm.DQ1.FieldByName('r_date').Clear;的时候正常,如果先执行其他程序再执行这条就报错,提示“无法更新定位行,一些值可能已在最后一次读取后已更改”。
有没有高手知道这是为什么?问题就出在dm.DQ1.FieldByName('r_date').Clear;这一句上,把这一句屏蔽就正常了。可是怎么看,这一句也没有问题啊?
1、你的表格中没有设置主键、索引之类。所以不能唯一标识一条数据。
2、日期的格式为空时系统默认生成1990-01-01。而你用了clear的属性,所以造成了错误。
dm.DQ1.FieldByName('r_date').asdatetime:='';最好用这一句,也可不要,
你是空字段,在数据insert中可以不断.
我是需要把已经存了值的r_date清空
改为dm.DQ1.FieldByName('r_date').asString:=''试试
我试过了,如果把clear改称具体的时间就可以,但问题是我要让它赋值为空值啊,郁闷
问题是第一次运行到这里不会死机,但第二次运行到这里就卡壳了,说什么数据已经更新过了cg2003() :就是不想用sql来清空,因为要找关键字太麻烦了
dm.DQ1.open.
dm.DQ1.Isert;
dm.DQ1.FieldByName('receive').AsString:='F';
dm.DQ1.FieldByName('r_date').asString='';
dm.DQ1.Post;
end
有没有高手知道这是为什么?问题就出在dm.DQ1.FieldByName('r_date').Clear;这一句上,把这一句屏蔽就正常了。可是怎么看,这一句也没有问题啊?-------咨询一下,在程序执行这些操作以前,还执行什么操作了??操作涉及到这个表没有??
------可以告诉这些东西吗?
第一次点checkbox没问题,可以顺利执行,但第二次点checkbox运行到这一句就会报错