我同時打開同一程序兩個:
執行程序一:
if button.click then
adotable['記號']:='1';接著執行程序二:
if (button.click) and (adotable['記號']='1')  then
adotable['記號']:='2';然後執行程序一:
if (button.click)and (adotable['記號']='2')  then
edit.text:='fdsfdsafgdasfdsf'// 這一步操作不能完成!
以上操作我沒有把程序關閉,如果把程序關閉,可以實現,這是什麽原因?
我看數據庫中的adotable['記號']在變化,但程序判斷adotable['記號']好像沒變?
怎麽回事?
煩透了!!!
(我在單機運行多個程序,是想實現局域網的功能!)請各位高手指點一下吧。

解决方案 »

  1.   

    是不是应该更新一下表啊,(UPDATE OR POST)
      

  2.   

    两个程序中的recordset不同步,把cursor设成dynamic。
      

  3.   

    老兄,你没有post,数据库里当然没有了。
    执行:
     adotable.Edit;
     adotable['記號']:='2';
     adotable.Post;
    关闭程序,它会自动Post,当然就可以了
      

  4.   

    抱歉:(沒寫清楚)
    adotable.Edit;
     adotable['記號']:='2';
     adotable.Post;
    我執行過了。還是不行阿!
      

  5.   

    adotable.fieldvalues['記號']:='2';
    adotable['記號'].Value:='2';
    没delphi,你自己调试一下
      

  6.   

    爲什麽關閉系統后,重新開啓就可以,(我肯定adotable.Post過)。
    請幫幫忙!急啊!
      

  7.   

    加一个刷新即可
      adotable1.Refresh;
      

  8.   

    Refresh 我試過 還是不行,why?
      

  9.   

    adotable.CLOSE;
    adotable.OPEN;//这样
    if (button.click)and (adotable['記號']='2')  then
    edit.text:='fdsfdsafgdasfdsf'// 這一步操作不能完成!
      

  10.   

    adotable.CLOSE;
    adotable.OPEN;
    這個我也試過,不行啊 老大!
    不過還是感謝!
      

  11.   

    如果数据库是本地数据库,可以这样试试:if button.click then
    begin
      adotable['記號']:='1';
      adotable.post;
      adotable.UpdateBatch;
    end;接著執行程序二:
    if (button.click) and (adotable['記號']='1')  then
    begin
      adotable['記號']:='2';
      adotable.post;
      UpdateBatch ;
    end;
      

  12.   

    TO: Borlandor(五角▲大民):
    我用的是本地access數據庫
    剛試過你的方法,不行啊
      

  13.   

    这样:
    adotable.Edit;
    adotable['記號']:='2';
    adotable.Post;
    行吗?
    这样吧:
    adotable.Edit;
    adotable.fieldbyname('記號').asstring:='2';
    adotable.Post;
      

  14.   

    if button.click then
    begin
      adotable['記號']:='1';
      adotable.post;
      adotable.UpdateBatch;
    end;接著執行程序二:
    if (button.click) and (adotable['記號']='1')  then
    begin
      adotable['記號']:='2';
      adotable.post;
      adotable.UpdateBatch;
    end;然後執行程序一:
    adotable.Refresh;
    if (button.click)and (adotable['記號']='2')  then
    edit.text:='fdsfdsafgdasfdsf'// 這一步操作不能完成!
    OK?
      

  15.   

    用adotable打开数据集时,数据在内存中,你必须要把数据Post到数据库中,不然另一个应用程序当然取不到值了, 我建议你以后用SQL语句,这样比较语句少,速度快!!!
      

  16.   

    我現在肯定一點:
    數據庫沒錯,我每操作一步都有看過數據庫,發現數據有變化。我認爲 noall() 說的有道理,是不是緩衝的問題?
      

  17.   

    Delphi的Post 是不能立即提交到数据库中的,要提交就必须Commit, 或者在服务器端执行存储过程, 或者用SQL的DDL直接更新. 用到TADOCommand组件
    例如: 
        Update Table1 set 記號='2'
      

  18.   

    我又有新發現:
    我添加一個dbedit控件(爲了直接取數據庫的值)
    發現數據庫變化了但dbedit的值沒變 説明實際我沒有取到數據庫内的值什麽原因?
      

  19.   

    TO: quantum(凤凰涅槃) :
    能不能再詳細一點
      

  20.   

    我找道答案了: neilwq(啄木鸟) (  ) 信誉:105  2002-10-9 17:36:35  得分:0  
     
      adotable.CLOSE;
      adotable.OPEN;關閉數據庫,重新打開,就可以取值.沒想到自己在轉圈子,浪費那麽多時間。謝謝大家賞臉! 散分! 人人有份!