全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:1363
推到 Plurk!
推到 Facebook!

請問select、update、delete可以寫在一起嗎

尚未結案
narcysion
一般會員


發表:54
回覆:18
積分:14
註冊:2003-03-14

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-10-29 16:18:04 IP:210.202.xxx.xxx 未訂閱
請問delphi底下TQuer元件裡頭的SQL,可將select、update、delete寫在一起嗎?我用的資料庫是ORACLE
sos_admin
版主


發表:121
回覆:697
積分:768
註冊:2003-07-23

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-10-29 16:59:21 IP:61.155.xxx.xxx 未訂閱
TQuery元件可以用来执行select\update\insert\delete得sql语法!
cashxin2002
版主


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

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-10-29 18:30:10 IP:63.84.xxx.xxx 未訂閱
您好﹗    您所謂的寫在一起是何概念呢﹖是指一條SQL中結合這三個方法﹐還是用Query元件的SQL屬性來分別逐行執行這三個方法﹖    如果是前者﹐就一定不可以﹗ 如果是后者﹐就當然可以﹐不過Select方法是用Query的Open方法來取得回傳資料﹐而Delete, Update是用Query的ExecSQL方法異動資料庫﹐無回傳值﹒    參考看看﹗    ===================== 努力,相信會獲得美麗! 忻晟
------
忻晟
Mickey
版主


發表:77
回覆:1882
積分:1390
註冊:2002-12-11

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-10-29 20:32:48 IP:218.32.xxx.xxx 未訂閱
narcysion 你好 : Oracle 是可以寫在一起, 如 :
begin
  Query1.Close;
  Query1.SQL.Clear;
  Query1.SQL.Add('begin');
  Query1.SQL.Add('insert ...;');
  Query1.SQL.Add('update ...;');
  Query1.SQL.Add('delete ...;');
  Query1.SQL.Add('end;');
  Query1.ExecSQL;
end;
如果你是想要做成一個 Transaction, 也可以用 TDataBase.StartTransaction Method, 如 :
begin
  with Query1 do
  begin
  Database1.StartTransaction;
    try
      ApplyUpdates; {try to write the updates to the database};
      Database1.Commit; {on success, commit the changes};
    except
      Database1.Rollback; {on failure, undo the changes};
      raise; {raise the exception to prevent a call to CommitUpdates!}
    end;
    CommitUpdates; {on success, clear the cache}
  end;
end;
針對 select ... , 因為是 Return 一個 DBCursor ,所以如 cashxin2002 兄所言, 恐怕不能和 delete/insert/update 等寫在一起. 發表人 - Mickey 於 2003/10/29 20:37:44
系統時間:2024-06-02 18:25:59
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!