一
我的保存过程是这样设的:
1.定义全局变量
bCanPost: Boolean;
2.在数据集控件的beforepost事件里面写代码
if (False = bCanPost) then
begin
DataSet.Cancel;
DataSet.Edit;
end;
bCanPost := False;
3.在保存按钮的点击事件里面
bCanPost := True;
...
post;
可是现在在点击“保存”后,出现如下错误:
无法为更新定位行,一些值可能已在最后一次读取后已更改。
二
dbgirdEh 有没有清空的命令和内容修改后自动更新一下的命令啊?
解决方案 »
- socketserver(scktsrvr.exe)作为服务的启动问题
- 哪位朋友有完整的 《Delphi Developer’s Guide to COM+》 Alexander Rodygin
- 已知窗体句柄,如何根据它获得窗体内所有控件的名称及其句柄?
- 数据库高手请入,解决了,再送300分......
- 请一个 SQL 语句
- 如何用SQL语句改变字段在表中的先后顺序。注意:是字段的位置而不是记录的位置.
- 如何能得到SQL SERVER中的所有数据库名
- 请问Tdatetimepicker控件在那
- 我写一个COM组件在自动类中用到了这个:varArraycreate([0,FContentLength],varByte);编译过程中提示:Undeclared identifer:'vararraycreate'
- 各位大侠,请问如何在delphi中使用vc++编写的COM模块?
- 我手动建立好的MDI为什么写了代码运行有错误?
- 请问怎么用ado.net 作为数据源.? Dll调试?
if (False = bCanPost) then
begin
DataSet.Cancel;
end;
bCanPost := False;
if (False = bCanPost) then
最好换为if Not(BCanPost) then
就行了如果非要变量
if (False = bCanPost) then
begin
DataSet.Cancel;
// DataSet.Edit;这句去掉
end;
bCanPost := False;另外很可能你的库里的字段设置了默认值并且允许为空
如果是这样改为不允许为空
就行了“dbgirdEh 有没有清空的命令和内容修改后自动更新一下的命令啊?“
只要让数据集刷新下就行了
adoquery1.refresh;