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

[SQL語法問題]如何同時執行多個Insert指令?

答題得分者是:Mickey
gerojeng
一般會員


發表:23
回覆:25
積分:9
註冊:2004-06-19

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-08-30 16:33:58 IP:211.76.xxx.xxx 未訂閱
我把下列語法放入Tquery中 Cmd ='INSERT INTO A(bb) VALUES(pp);INSERT INTO A(bb) VALUES(pp);'; Query1.SQL.Add(Cmd); Query1.ExecSQL; 執行,卻出現這個錯誤 [Microsoft][ODBC Microdost Access Driver]在SQL陳述式結尾之發現多餘的字元 可是如果我分開執行,向下列這樣 Query1.SQL.Clear; Cmd ='INSERT INTO A(bb) VALUES(pp);'; Query1.SQL.Add(Cmd); Query1.ExecSQL; Query1.SQL.Clear; Cmd ='INSERT INTO A(bb) VALUES(pp);'; Query1.SQL.Add(Cmd); Query1.ExecSQL; 卻可以正常執行,請問我哪裡出錯了? 感激不盡
cashxin2002
版主


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

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-08-30 18:15:17 IP:202.62.xxx.xxx 未訂閱
您好﹗    呵呵﹐在我的印象之中﹐SQL敘述不能夠合并在一起寫﹐而是要分開執行才可﹒    ========================= 大病初愈﹐休養調整中... =========================
------
忻晟
Mickey
版主


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

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-08-30 22:00:40 IP:218.32.xxx.xxx 未訂閱
gerojeng 你好:    1. 你可以用這樣包成一個 Transaction : 
Query1.Database.StartTransaction;
try
  Query1.SQL.Clear;
  Cmd ='INSERT INTO A(bb) VALUES(pp)';
  Query1.SQL.Add(Cmd);
  Query1.ExecSQL;      Query1.SQL.Clear;
  Cmd ='INSERT INTO A(bb) VALUES(pp)';
  Query1.SQL.Add(Cmd);
  Query1.ExecSQL;
  Query1.DataBase.Commit;
except
  Query1.DataBase.Rollback;
  Raise;
end;
2. 若是 Oracle, 試試看:
Query1.SQL.Clear;
Query1.SQL.Add('begin');
Query1.SQL.Add('  INSERT INTO A(bb) VALUES(pp);');
Query1.SQL.Add('  INSERT INTO A(bb) VALUES(pp);');
Query1.SQL.Add('  commit;');
Query1.SQL.Add('end;');
Query1.ExecSQL;
發表人 - Mickey 於 2004/08/30 22:04:43
terrychen
尊榮會員


發表:90
回覆:794
積分:501
註冊:2003-05-01

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-08-30 23:13:29 IP:219.80.xxx.xxx 未訂閱
您好: 應該是ACESS不支援此語法 但在MSSQL可以 ~~應無所住而生其心~~
系統時間:2024-07-03 9:14:53
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!