1、DBGrid如何将向下的光标键封闭。急急急,在线等待!!!
2、DbGrid的运行中出现"Couldn't perform the edit becase another user changed the record"该怎么解决。
2、DbGrid的运行中出现"Couldn't perform the edit becase another user changed the record"该怎么解决。
解决方案 »
- 怎么把文件压缩到指定目录中?
- 求助一个关于Image控件的问题,50分奉送
- WebServices中关于isapi和cgi的问题,同样事为什么isapi做不了?
- 远程访问服务器上的数据库的问题?
- 如何获得copyfile()的时间,现在想用progressbar显示copy的时间
- DELPHI7安装
- 发了N个帖子没有解决问题,郁闷!散分!!!分数不够再加!!!
- 请问那里有如果在局域网内容实现文件传输?
- 视频文件能否存入数据库中?
- 为什么我自动创建的一个QRDBText显示不出来,帮帮忙吧
- delphi+Access:这样的语句为何通不过.....
- 为什么执行Adoquery的true,false判断出错!
Shift: TShiftState);
begin
if Key=vk_Down then Key:=0
end;
Shift: TShiftState);
begin
if key=40 then key:=0;
end;
Shift: TShiftState);
begin
if key=40 then key:=0;
end;
Shift: TShiftState);
begin
if (Key=vk_Down)or(key=vk_Up) then Key:=0
end;
大意就是在你准备进行更新时,你当前所看到的数据在数据库中已经发生了变化
(也就是被别人改变了),你要知道,TADODataSet也是发SQL去更新数据库的,
缺省方式其是索引字段与被改变字段作where匹配字段查找字段来更新,(有几种方式
,这是缺省的方式)
类似
update tbname set *=*
where 索引字段=*
and 被改变字段=*....
如果这些where字段发生了变化会导致本意要更新一条,但准备被更新的记录条数为0
或多于1条,就会发生你上述的提示.其实这是很符合逻辑的(比如你感冒了,你去看医生,
而在走了一段路后,感冒可能奇迹般好了,你是否会继续去医院哟?).但有时可能会感到
不方便.如果是被其他程序所改变,而你希望有这种情况下更新情况,你可以使用wherekeyonly
更新方式.另外要注意一种情况:缺省值,在这种情况下,没有其他程序更新数据库,也可能
发生字段值被改变而引发上述提示,解决办法是取消sqlserver或access字段
的缺省值.
Shift: TShiftState);
begin
if (Key=vk_Down)or(key=vk_Up) then Key:=0
end;
Shift: TShiftState);
begin
if (Key=vk_Down)or(key=vk_Up) then Key:=chr(0);
end;
如果没有第二个用户修改你的数据,很可能使这个样子的。
你操纵的数据表裏面,有的字段有默认值。比如 default "N"之类的冬冬
在第一次保存了数据之后,数据库里面的实际值由于有default的存在,
就跟你前端数据集里面的值不一样了。你再修改,保存的时候,就会
出现错误信息。就像你说得那样。你可以在保存以后刷新数据集 query.refresh
就不会有问题了
Key = VK_Down好一些;
第二个问题:另一个用户用独占的方式打开了;