我用ADO访问ACCESS数据库,其中第一个字段:ID为自增长型的,我插入一条记录后,需要将这个I这个新ID传出作为它用,函数大致如下:
function TShareDB.AddFile(const FileName:string;var ID: Integer): Boolean;
begin
Result := True;
try
FTable.AppendRecord([nil, ...]);
FTable.Post;
ID := FTable.FieldByName('ID').AsInteger;
except
Result := False;
end;
end;但是这个ID就是不正确,请问大家应该怎样来正确获取这个自动增长型 的字段值。
我用Access打开文件看:记录确实已插入到表中而且ID值也是自动增长的.Refresh这个方法我也调用过,但是还不正确
function TShareDB.AddFile(const FileName:string;var ID: Integer): Boolean;
begin
Result := True;
try
FTable.AppendRecord([nil, ...]);
FTable.Post;
ID := FTable.FieldByName('ID').AsInteger;
except
Result := False;
end;
end;但是这个ID就是不正确,请问大家应该怎样来正确获取这个自动增长型 的字段值。
我用Access打开文件看:记录确实已插入到表中而且ID值也是自动增长的.Refresh这个方法我也调用过,但是还不正确
with FTable do
begin
Append;
FieldValues['field_01'] := ...;
FieldValues['field_02'] := ...;
...;
Post;
ID := FieldByName('ID').AsInteger;
end;
select MAX(ID) from tablename
FTable.AppendRecord([nil, ...]);
把null,去掉,改成
FTable.AppendRecord([...]);
试试,
使用系统标量函数@@Identity
insert 表 values(值)
select @@identity
就可以得到刚插入记录的ID
在table2的beforepost里写
with DataSet do
begin
edit;
fieldbyname('id').AsInteger:=table2.fieldbyname('ID').asinteger;
end;