刪除此欄位就出現錯誤訊息 |
尚未結案
|
20052020
初階會員 發表:121 回覆:79 積分:40 註冊:2005-01-18 發送簡訊給我 |
請問各位大大當我的欄位A_1,A_2,有一格或兩格欄位沒有填入值時,存入資料庫是可以的,但是要刪除此欄位就出現錯誤訊息。 ◎該如何才可以不管欄位沒有填入值'存入資料庫後,可以刪除此欄位而不出現錯誤訊息
procedure TForm1.Button1Click(Sender: TObject);
begin
Query1.Close;
Query1.open;
Query1.Append; end; procedure TForm1.Button2Click(Sender: TObject);
begin Query1.Post;
Query1.ApplyUpdates;
Query1.CommitUpdates;
Query1.CancelUpdates;
Query1.Append;
end
else
ShowMessage('儲存資料失敗!'); end; procedure TForm1.Button3Click(Sender: TObject);
begin Try
Query1.Delete;
Query1.ApplyUpdates;
Query1.CommitUpdates; Except
Query1.CancelUpdates;
Showmessage('刪除失敗!');
end;
end;
end.
------
Xax |
deity
尊榮會員 發表:90 回覆:876 積分:678 註冊:2003-05-09 發送簡訊給我 |
你好:
首先来了解下几个概念:
如果使用BatchUpdate模式的话,首先得将Query的CachedUpdate设为True;使用方法如下:
procedure TForm1.ApplyButtonClick(Sender: TObject); begin with CustomerQuery do begin Database1.StartTransaction; try ApplyUpdates; {尝试将更新写入数据库}; Database1.Commit; {确认写入数据库}; except Database1.Rollback; {如果更新失败,取消更新}; raise; {raise the exception to prevent a call to CommitUpdates!} end; CommitUpdates; {如果更新成功,清除客户端缓存数据} end; end; 而普通模式下,直接下Post即可将改动数据更新到数据库。 所以对于你上面的问题,简单来写,可参考: 先将Query1的RequestLive设为True; procedure TForm1.Button1Click(Sender: TObject); begin Query1.Close;<<--关闭数据源 Query1.open;<<--打开数据源 Query1.Append;<<--将数据源处于新增状态 end; procedure TForm1.Button2Click(Sender: TObject); begin Query1.Post;<<--更新数据源 end; procedure TForm1.Button3Click(Sender: TObject); begin Query1.Delete;<<--删除当前指针所指记录 end; 建议去翻翻书,了解数据源的新增删除等基本的操作,小弟写得比较乱~~============================ 为什么经过多年以后,得失的过程如此冷漠 ============================ |
20052020
初階會員 發表:121 回覆:79 積分:40 註冊:2005-01-18 發送簡訊給我 |
引言: 你好: 首先来了解下几个概念: 如果使用BatchUpdate模式的话,首先得将Query的CachedUpdate设为True;使用方法如下:deity大大以上沒有結論阿procedure TForm1.ApplyButtonClick(Sender: TObject); begin with CustomerQuery do begin Database1.StartTransaction; try ApplyUpdates; {尝试将更新写入数据库}; Database1.Commit; {确认写入数据库}; except Database1.Rollback; {如果更新失败,取消更新}; raise; {raise the exception to prevent a call to CommitUpdates!} end; CommitUpdates; {如果更新成功,清除客户端缓存数据} end; end; 而普通模式下,直接下Post即可将改动数据更新到数据库。 所以对于你上面的问题,简单来写,可参考: 先将Query1的RequestLive设为True; procedure TForm1.Button1Click(Sender: TObject); begin Query1.Close;<<--关闭数据源 Query1.open;<<--打开数据源 Query1.Append;<<--将数据源处于新增状态 end; procedure TForm1.Button2Click(Sender: TObject); begin Query1.Post;<<--更新数据源 end; procedure TForm1.Button3Click(Sender: TObject); begin Query1.Delete;<<--删除当前指针所指记录 end; 建议去翻翻书,了解数据源的新增删除等基本的操作,小弟写得比较乱~~============================ 为什么经过多年以后,得失的过程如此冷漠 ============================
------
Xax |
deity
尊榮會員 發表:90 回覆:876 積分:678 註冊:2003-05-09 發送簡訊給我 |
你好:
你要的是什么结论? 上面是说明了你如果采用BatchUpdate模式的话,可参考我给的那段范例。如果是普通模式的话,也已经给出了完整的代码。你还要什么结论?还是运行不成功。 你自己写的代码,两种模式相互掺和,重复操作,难免就会报错~ 所以对于你上面的问题,简单来写,可参考: 先将Query1的RequestLive设为True; procedure TForm1.Button1Click(Sender: TObject); begin Query1.Close;<<--关闭数据源 Query1.open;<<--打开数据源 Query1.Append;<<--将数据源处于新增状态 end; procedure TForm1.Button2Click(Sender: TObject); begin Query1.Post;<<--更新数据源 end; procedure TForm1.Button3Click(Sender: TObject); begin Query1.Delete;<<--删除当前指针所指记录 end; 这不是你要的结论吗?============================ 为什么经过多年以后,得失的过程如此冷漠 ============================ |
20052020
初階會員 發表:121 回覆:79 積分:40 註冊:2005-01-18 發送簡訊給我 |
|
deity
尊榮會員 發表:90 回覆:876 積分:678 註冊:2003-05-09 發送簡訊給我 |
|
20052020
初階會員 發表:121 回覆:79 積分:40 註冊:2005-01-18 發送簡訊給我 |
|
deity
尊榮會員 發表:90 回覆:876 積分:678 註冊:2003-05-09 發送簡訊給我 |
|
20052020
初階會員 發表:121 回覆:79 積分:40 註冊:2005-01-18 發送簡訊給我 |
|
deity
尊榮會員 發表:90 回覆:876 積分:678 註冊:2003-05-09 發送簡訊給我 |
你好:
我试了没有问题,可能你是连续按了“新增”而没按"save"进行操作吧,那它当然不会自动保存了,如你想进行批量新增(即连续新增几笔,最后才传回资料库)的话,可采用ADO的CachedUpdate模式,上面也给了你范例,也可以在站内查找相关的资料,有很多。
另你可以拉一个DBNavigator1(在data controls面板上)设置其DataSource为DBGrid对应的DataSource,就可以利用DBNavigator1进行新增,删除等操作了,这样也比较方便好用,可以试试。
或将
procedure TForm1.Button1Click(Sender: TObject); begin如还不明白的话,小弟也没办法了 <> ============================ 为什么经过多年以后,得失的过程如此冷漠 ============================ > |
20052020
初階會員 發表:121 回覆:79 積分:40 註冊:2005-01-18 發送簡訊給我 |
|
deity
尊榮會員 發表:90 回覆:876 積分:678 註冊:2003-05-09 發送簡訊給我 |
|
20052020
初階會員 發表:121 回覆:79 積分:40 註冊:2005-01-18 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |