我正在尝试在dbx4中使用黑色鱼数据库中的自动增量字段 我有一个简单的表结构:
CREATE TABLE tblTABname (
ID int AUTOINCREMENT Primary Key,
Description varchar(100) NOT NULL );
在开放之前我正在做:
qryTAB.FieldByName( ‘ID’).AutoGenerateValue := arAutoInc;
cdsTAB.FieldByName( ‘ID’).AutoGenerateValue := arAutoInc;
开放后:
qryTab.FieldByName('ID').ProviderFlags := [pfInWhere, pfInKey];
cdsTab.FieldByName('ID').ProviderFlags := [pfInWhere, pfInKey];
如果我这样做:
cdsTAB.Edit;
cdsTAB.FieldByName(‘Description’).value := ‘Test’;
cdsTAB.Post;
或者如果我在DBGRID中使用它,它将失败并显示错误:
“字段'ID'必须具有值”
应该已经生成了女巫。
如果我运行INSERT查询,它可以正常工作,无论是否有“AutoGenerateValue:= arAutoInc”行。
我该如何克服这个问题?
答案 0 :(得分:0)
不是调用CDSTab.EDIT,而是调用CDSTab.INSERT添加新行,只在光标已经在记录上时调用CDSTab.EDIT,并编辑该记录的值。