数据集的编辑模式和插入模式(20分)

K

kfzt

Unregistered / Unconfirmed
GUEST, unregistred user!
显示在网格的表中有一‘总分’列,我想单击一按钮,
使程序自动计算另外两列“成绩1”和“成绩2”的和。
我已经使“总分”列的fieldkind属性改为fkCalculated
我在单击事件中编写代码,使成绩1和2的值赋给
table1.fieldbyname('总分').asstring。运行时显示:
Project Project1.exe raised exception class EDatabaseError
with message 'Tabel1:Dataset not in edit or insert mode'.Precess
stopped.Use Step or Run to contine.
请问:怎样设置数据集的模式(编辑和插入)?小弟在此表示感谢!
 
如下:
table1.edit;
 
fkCalculated
不是这么用的了,好好看看demo
 
对delphiandoracle说:我用了table.edit但仍不可以。
对xly133说:我用查找文件的方法,查到很多demo我不知道看哪一个。
我还想问一句:table的 state属性和 dataset的 state属性都有哪些取值。
这是我的代码:
procedure TForm1.Button1Click(Sender: TObject);
begin
datasource1.DataSet.Active :=true;
table1.DisableControls ;
//table1.State:='upinsertmode';
table1.Edit;
datasource1.DataSet.edit;
table1.first;
while not datasource1.DataSet.Eof do
begin
table1.Fields[4].AsString:=inttostr(table1.Fields [2].AsInteger +table1.Fields [3].AsInteger);
table1.Next ;
end;
table1.EnableControls ;
table1.Active :=true;
end;
 
我不能给datasource1.dataset.state赋值dsedit,因为它是只读属性。
在DB。PAS中定义有:
TDataSetState = (dsInactive, dsBrowse, dsEdit, dsInsert, dsSetKey,
dsCalcFields, dsFilter, dsNewValue, dsOldValue, dsCurValue, dsBlockRead,
dsInternalCalc, dsOpening);
 
这个问题我已经解决。“总分”列是在字段编辑器里手工添加的,用一个计算事件就
可以解决,不需要编一句代码。谢谢。
 
多人接受答案了。
 
顶部