M
mech
Unregistered / Unconfirmed
GUEST, unregistred user!
前端DELPHI5。0,后端是SQL SERVER7。0。
TQUERY控件的COMMITUPDATES似乎并不能清
缓冲区.
例:
如果在后端有一个表如下:
CREATE TABLE XX (
NO CHAR(8) NOT NULL PRIMARY KEY,
NAME CHAR(8) CONSTRAINT CK_XX CHECK(NAME<>'A')
在前端, 通过
APPLYUPDATES;
COMMITUPDATES
更新数据.
问题出现了:
如果你新增了一条记录,并通过APPLYUPDATES和COMMITUPDATES
保存成功,再修改这条记录, 故意使保存不成功(如:让NAME='A'),
如果再改原先的值,同样保存不成功,提示主键重复.这显然是不合
理的.
原因可能是:
新加的记录,在缓冲区中,即使保存成功后,状态仍是RTINSERT,
其实, 如果保存成功,状态就应该与非新增记录一样.
各位大侠:请指点怎样解决这不问题(不要告诉我用CANCELUPDATES,
因为错误值也同样要显示给用户看)
TQUERY控件的COMMITUPDATES似乎并不能清
缓冲区.
例:
如果在后端有一个表如下:
CREATE TABLE XX (
NO CHAR(8) NOT NULL PRIMARY KEY,
NAME CHAR(8) CONSTRAINT CK_XX CHECK(NAME<>'A')
在前端, 通过
APPLYUPDATES;
COMMITUPDATES
更新数据.
问题出现了:
如果你新增了一条记录,并通过APPLYUPDATES和COMMITUPDATES
保存成功,再修改这条记录, 故意使保存不成功(如:让NAME='A'),
如果再改原先的值,同样保存不成功,提示主键重复.这显然是不合
理的.
原因可能是:
新加的记录,在缓冲区中,即使保存成功后,状态仍是RTINSERT,
其实, 如果保存成功,状态就应该与非新增记录一样.
各位大侠:请指点怎样解决这不问题(不要告诉我用CANCELUPDATES,
因为错误值也同样要显示给用户看)