我有一个表,我已将其设置为另一个表单使用的指针。
此表单上有一个使用For循环的过程如果GUID尚不存在,我会在表中创建新记录。
With Table^ do
for I := 0 to Results.result.RowCount - 1 do
begin
IndexName := 'GUID';
SetKey;
FieldByName('GUID').AsString := Results.UserDetail[I].Guid;
if not Gotokey then
begin
Insert;
etc..
end;
大部分时间它工作正常..但是有一些情况下,当它尝试设置密钥时,而不是从dsBrowse到dsSetKey的表状态,它保持在dsBrowse,因此我得到一个"表没有在编辑模式错误"
发生这种情况的一种情况是,它会循环遍历forloop 10次并且运行顺利但是在11次它无法将表更改为setkey模式..
您对表格可能会发生什么有什么想法,或者在调用SetKey后表格为何会保持浏览模式?
由于
更新 -
我也遇到类似的情况,SetRangeStart不改变状态但保持浏览模式。我甚至摆脱了桌面上的所有更改事件并追溯到SetRangeStart以确保没有运行其他代码并且它仍然没有改变状态。
使用大多数数据集时,相同的代码工作正常。所以我相信它可能与数据有关..任何想法?
答案 0 :(得分:0)
我发现在遇到这个问题时如果我在使用它时禁用了控件,然后在解决了问题后启用了EnabledControls。
Table.DisableControls;
....
Table.EnableControls;