我想在DBGrid中双击一项记录后通过调用如下自定义过程来将修改的数据提交到数据库中
可是程序执行后数据库中的数据并没有改变,为什么?请高手给我写出您的实现代码。
procedure TForm1.MyDblClick;
begin
if dbgrid1.Fields[4].AsString<>'Yes' then
begin
if checkinput() then
begin
dbgrid1.Columns.Items[4].Color:=clwhite;
with dbgrid1.DataSource.DataSet do
begin
edit;
gotobook(pointer(dbgrid1.SelectedRows.items[0]));
edit;
fieldByName('HasPic').AsString:='Yes';
dbgrid1.Fields[4].Asstring:='Yes';
post;
end;
可是程序执行后数据库中的数据并没有改变,为什么?请高手给我写出您的实现代码。
procedure TForm1.MyDblClick;
begin
if dbgrid1.Fields[4].AsString<>'Yes' then
begin
if checkinput() then
begin
dbgrid1.Columns.Items[4].Color:=clwhite;
with dbgrid1.DataSource.DataSet do
begin
edit;
gotobook(pointer(dbgrid1.SelectedRows.items[0]));
edit;
fieldByName('HasPic').AsString:='Yes';
dbgrid1.Fields[4].Asstring:='Yes';
post;
end;
解决方案 »
- FastReport报表组件中的Edit Text Tool和Text object有什么区别?
- 如何给控件的属性注释?
- §§§§§续【你小康了吗?】调查贴之二:小康不小康,主要看住房,您的待遇?当地的房价?你买了房子吗?§§§§§
- 怎样定义ActionManager中的action行为?
- 介绍个让线程暂停几秒运行的函数.
- 有关写EXCEL的问题?
- 紧急求援:Delphi7.0的安装sn和key
- 高手们救命啊!请问在繁体操作系统下,怎么把简体转换成繁体啊?明天就要交货了,急急急~~~~~~~~~
- 这里的人气怎么越来越淡了??
- 如何对备注字段进行模糊查询
- 以前有人用delphi做了一个csdn论坛的离线浏览器,并发贴提供下载,找不到了,帮忙找一下
- 初学,请多指教:)
DATASET就已经在你要求修改的那个记录上了
所以改成这样应该可以了
with dbgrid1.DataSource.DataSet do
begin
if fields[4].asstring<>'yes' then
if checkinput() //不明白你这个是什么用 then
begin
fieldByName('HasPic').AsString:='Yes';
fields[4].asstring:='yes'
end;
end;
with dbgrid1.DataSource.DataSet do
begin
if fields[4].asstring<>'yes' then
if checkinput() //不明白你这个是什么用 then
begin
edit;
fieldByName('HasPic').AsString:='Yes';
fields[4].asstring:='yes'
post;
end;
end;
此外
你的dbgrid1.DataSource.DataSet 必须是一个可以编辑的对象(table或REQUESTALIVE的QUERY)
而且“CACHEDUPDATE”等属性为FALSE时,
上面语句才会有效改变数据
否则还要加入“applyupdates”来更新你的修改
我用的是ADOQuery
我在我的机子上试过了
上面的修改还是一样有效