線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1043
推到 Plurk!
推到 Facebook!

还是关于DBEDIT问题?

答題得分者是:cashxin2002
wu_51_yi
一般會員


發表:8
回覆:5
積分:2
註冊:2004-12-22

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-12-23 09:48:01 IP:61.154.xxx.xxx 未訂閱
都是这么简单问题麻烦大大,不好意思! 为什么我的DBEDIT联系的一个ADOQUERY1,值可以正常显示出来,可是修改完后却没有存档,再查一次还是原来值。(READONLY属性是FALSE,值正常显示说明DATAFIELD也没错)。
cashxin2002
版主


發表:231
回覆:2555
積分:1937
註冊:2003-03-28

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-12-23 10:15:52 IP:202.62.xxx.xxx 未訂閱
您好﹗    請問在修改完成后有沒有下過Post的命令﹐或使用DBNavigator元件上的Post按鈕將異動資料真正存入到資料庫中﹖    ================================= 有空來瞅瞅我﹗因為我是您的朋友﹐有您真好﹗ ================================
------
忻晟
kenspc
一般會員


發表:1
回覆:20
積分:4
註冊:2004-12-09

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-12-23 10:22:26 IP:61.6.xxx.xxx 未訂閱
我想問題也可能是出在adoquery吧, 把它換成adotable看看是否解決. (我是猜adoquery的属性沒設定好)
wu_51_yi
一般會員


發表:8
回覆:5
積分:2
註冊:2004-12-22

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-12-23 10:25:24 IP:61.154.xxx.xxx 未訂閱
dbedit为什么还用POST,DBEDIT的值变后难道不是立即存入ADOQUERY1吗,难道还需要用上POST事件?如果ADOQUERY1要设属性,应该设在哪里? 發表人 - wu_51_yi 於 2004/12/23 10:40:32
kenspc
一般會員


發表:1
回覆:20
積分:4
註冊:2004-12-09

發送簡訊給我
#5 引用回覆 回覆 發表時間:2004-12-23 10:54:27 IP:61.6.xxx.xxx 未訂閱
引言:dbedit为什么还用POST,DBEDIT的值变后难道不是立即存入ADOQUERY1吗,难道还需要用上POST事件?如果ADOQUERY1要设属性,应该设在哪里?
不行, dbedit的值变后只是暫存, 一定要post才會存入. ADOQUERY1的connectionstring属性最好為空, 不然在connectionstring中readonly不能為true.
deity
尊榮會員


發表:90
回覆:876
積分:678
註冊:2003-05-09

發送簡訊給我
#6 引用回覆 回覆 發表時間:2004-12-23 11:23:28 IP:218.15.xxx.xxx 未訂閱
引言: dbedit为什么还用POST,DBEDIT的值变后难道不是立即存入ADOQUERY1吗,难道还需要用上POST事件?如果ADOQUERY1要设属性,应该设在哪里? 發表人 - wu_51_yi 於 2004/12/23 10:40:32
wu_51_yi您好: DBEdit1是数据感应组件,只作显示,不能自己修改; 要想修改可参考下列:
 
procedure TForm1.Button1Click(Sender: TObject);
begin
  with ADOQuery1 do
    begin
      close;
      sql.Clear;
      sql.Add('select * from table1');
      open; 
    end;
    DBEdit1.DataSource:=DataSource1;
    DBEdit1.DataField:='name';
end;    procedure TForm1.Button2Click(Sender: TObject);
begin
  ADOQuery1.Edit;
  ADOQuery1.FieldByName('name').AsString:=DBEdit1.Text; 
  ADOQuery1.Post;
end;
试试看喔
~~~行径窄处,留一步与人行~~~
cashxin2002
版主


發表:231
回覆:2555
積分:1937
註冊:2003-03-28

發送簡訊給我
#7 引用回覆 回覆 發表時間:2004-12-23 12:06:25 IP:202.62.xxx.xxx 未訂閱
引言:
引言:dbedit为什么还用POST,DBEDIT的值变后难道不是立即存入ADOQUERY1吗,难道还需要用上POST事件?如果ADOQUERY1要设属性,应该设在哪里?
不行, dbedit的值变后只是暫存, 一定要post才會存入. ADOQUERY1的connectionstring属性最好為空, 不然在connectionstring中readonly不能為true.
您好﹗ DBEdit元件的作用是透過上游已經連接資料集元件的DataSource元件來顯示對應的資料欄位內容﹐當然﹐其也是可作為異動資料之用﹐其配合資料集元件的State屬性(dsEdit; dsInsert等)﹐即可對資料集元件相對應欄位作修改的動作﹐但無論是修改還是新增﹐在DBEdit等資料感知元件中輸入的內容并沒有存入到資料庫中﹐其只是存在于暫存區內﹐直到下達Post命令﹐才會將異動內容存入到資料庫中﹒ 我猜想您把DataSource元件的AutoEdit屬性值設為True了﹐這樣﹐在修改(Modify)資料的時候﹐并不需要先下Edit的命令﹐所以您可把此屬性值設為False試試看﹐在修改資料之前﹐就一定先要下Edit的命令(或是點擊DBNavigator元件上的Edit按鈕)﹐在修改完成后﹐再下Post的命令(或是點擊DBNavigator元件上的Post按鈕)﹐此時才是一筆資料的異動正常完成﹒ ================================= 有空來瞅瞅我﹗因為我是您的朋友﹐有您真好﹗ ================================
------
忻晟
系統時間:2024-07-02 7:41:56
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!