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

ADOQuery1.Delete 為什麼無法執行? 請問語法有錯誤嗎?

尚未結案
jawtair
一般會員


發表:30
回覆:92
積分:24
註冊:2003-04-26

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-06-06 18:43:29 IP:61.221.xxx.xxx 未訂閱
請問下面的程式是否有問題? 為什麼執行會有錯誤? procedure TForm1.SpeedButton7Click(Sender: TObject); var Emp_No: String; begin Emp_No := DataSource1.DataSet.FieldByName('A0').AsString; if messagedlg('確定要刪除?',mtConfirmation,[mbYes, mbNo], 0) = mrYes then begin ADOQuery1.Close; ADOQuery1.SQL.Clear; ADOQuery1.SQL.Text := 'SELECT * FROM pm3d Where (A0 = ' QuotedStr(Emp_No) ')'; ADOQuery1.Delete; ADOQuery1.Close; ADOQuery1.SQL.Clear; ADOQuery1.SQL.Add('select * from pm3d'); ADOQuery1.Open; end; end;
jawtair
一般會員


發表:30
回覆:92
積分:24
註冊:2003-04-26

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-06-06 19:07:19 IP:61.221.xxx.xxx 未訂閱
錯誤訊息如下: Project MDIAPP.exe raised exception class EDatabaseError with message'ADOQuery1:Cannot perform this operation on a closed dataset' Process stopped. Use Step or Run to continue. 如果繼續執行就會出現 ADOQuery1: Cannot perform this operation on a closed dataset.
jawtair
一般會員


發表:30
回覆:92
積分:24
註冊:2003-04-26

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-06-06 19:22:23 IP:61.221.xxx.xxx 未訂閱
改成這樣也不行吔,真奇怪 procedure TForm1.SpeedButton7Click(Sender: TObject); var Emp_No: String; begin Emp_No := DataSource1.DataSet.FieldByName('A0').AsString; if messagedlg('確定要刪除?',mtConfirmation,[mbYes, mbNo], 0) = mrYes then begin ADOQuery1.Close; ADOQuery1.SQL.Clear; ADOQuery1.SQL.Text := 'DELETE FROM pm3d Where (A0 = ' QuotedStr(Emp_No) ')'; ADOQuery1.ExecSQL; ADOQuery1.Close; ADOQuery1.SQL.Clear; ADOQuery1.SQL.Add('select * from pm3d'); ADOQuery1.Open; end; end; 執行到 ADOQuery1.ExecSQL; 就會出現錯誤訊息 Access violation at address 1F453E7E in module 'msado15.dll'. Write of address 00FDB020. 發表人 - jawtair 於 2003/06/06 19:26:29
chih
版主


發表:48
回覆:1186
積分:639
註冊:2002-04-02

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-06-06 19:31:22 IP:61.216.xxx.xxx 未訂閱
改成這樣試看看 ADOQuery1.SQL.Text := 'DELETE FROM pm3d Where (A0 = ' #39 QuotedStr(Emp_No) #39 ')';
hagar
版主


發表:143
回覆:4056
積分:4445
註冊:2002-04-14

發送簡訊給我
#5 引用回覆 回覆 發表時間:2003-06-06 19:48:53 IP:202.39.xxx.xxx 未訂閱
procedure TForm1.SpeedButton7Click(Sender: TObject);
var
  Emp_No: String;
begin
  Emp_No := DataSource1.DataSet.FieldByName('A0').AsString;
  if messagedlg('確定要刪除?',mtConfirmation,[mbYes, mbNo], 0) = mrYes then
  begin
    ADOQuery1.Close;
    ADOQuery1.SQL.Clear;
    ADOQuery1.SQL.Text := 'SELECT * FROM pm3d Where (A0 = '+ QuotedStr(Emp_No) +')';
ADOQuery1.Open; // 這加一行後, 再做 ADOQuery1.Delete 的動作
    ADOQuery1.Delete;
    ADOQuery1.Close;
    ADOQuery1.SQL.Clear;
    ADOQuery1.SQL.Add('select * from pm3d');
    ADOQuery1.Open;
  end;
end;
[/quote] --- 每個人都是一本書 發表人 - hagar 於 2003/06/06 19:52:09
jawtair
一般會員


發表:30
回覆:92
積分:24
註冊:2003-04-26

發送簡訊給我
#6 引用回覆 回覆 發表時間:2003-06-06 19:51:11 IP:61.221.xxx.xxx 未訂閱
引言: 改成這樣試看看 ADOQuery1.SQL.Text := 'DELETE FROM pm3d Where (A0 = ' #39 QuotedStr(Emp_No) #39 ')'; 執行到 ADOQuery1.ExecSQL; 就會出現錯誤訊息 Project MDIAPP.exe raised exception class EAccessViolation with message'Access violation at address 1F453E7E in module 'msado15.dll'. Write of address 00FEF024'. Process stopped. Use Step or Run to continue. 如果繼續執行就會出現 Access violation at address 1F453E7E in module 'msado15.dll'. Write of address 00FEF024. 我想問題可能不在DELETE語法,而是ADOQuery1屬性,是否唯讀,還是資料庫鎖住了 順便說一下我的元件結構 SQL數據庫pm3d←ADOConnection1←ADOQuery1←DataSource1←DBGrid1
hagar
版主


發表:143
回覆:4056
積分:4445
註冊:2002-04-14

發送簡訊給我
#7 引用回覆 回覆 發表時間:2003-06-06 20:03:52 IP:202.39.xxx.xxx 未訂閱
這裏有講到這個問題, 是要 Update ADO 的 參考看看: http://groups.google.com.tw/groups?hl=zh-TW&lr=&ie=UTF-8&oe=UTF-8&th=6d157347f590372a&rnum=2    --- 每個人都是一本書
jawtair
一般會員


發表:30
回覆:92
積分:24
註冊:2003-04-26

發送簡訊給我
#8 引用回覆 回覆 發表時間:2003-06-06 20:40:04 IP:61.221.xxx.xxx 未訂閱
引言:
  ADOQuery1.Open; // 這加一行後, 再做 ADOQuery1.Delete 的動作
改成下面這樣後,仍然不行 procedure TForm1.SpeedButton7Click(Sender: TObject); var Emp_No: String; begin Emp_No := DataSource1.DataSet.FieldByName('A0').AsString; if messagedlg('確定要刪除?',mtConfirmation,[mbYes, mbNo], 0) = mrYes then begin ADOQuery1.Close; ADOQuery1.SQL.Clear; ADOQuery1.SQL.Text := 'SELECT * FROM pm3d Where (A0 = '+#39+ QuotedStr(Emp_No) +#39+')'; ADOQuery1.Open; ADOQuery1.Delete; ADOQuery1.Close; ADOQuery1.SQL.Clear; ADOQuery1.SQL.Add('select * from pm3d'); ADOQuery1.Open; end; end; 執行時,出現錯誤訊息 再按下確定,出現 發表人 - jawtair 於 2003/06/06 20:40:57
chih
版主


發表:48
回覆:1186
積分:639
註冊:2002-04-02

發送簡訊給我
#9 引用回覆 回覆 發表時間:2003-06-06 20:50:13 IP:61.216.xxx.xxx 未訂閱
ADOQuery1.SQL.Text := 'SELECT * FROM pm3d Where A0 = ' #39 QuotedStr(Emp_No) #39;
jawtair
一般會員


發表:30
回覆:92
積分:24
註冊:2003-04-26

發送簡訊給我
#10 引用回覆 回覆 發表時間:2003-06-06 21:03:54 IP:61.221.xxx.xxx 未訂閱
引言: ADOQuery1.SQL.Text := 'SELECT * FROM pm3d Where A0 = ' #39 QuotedStr(Emp_No) #39;
錯誤訊息同上, 應該不是語法的問題
chih
版主


發表:48
回覆:1186
積分:639
註冊:2002-04-02

發送簡訊給我
#11 引用回覆 回覆 發表時間:2003-06-06 21:16:30 IP:61.216.xxx.xxx 未訂閱
如hagar大大所說不之你有沒有做過Update ADO 了?
jawtair
一般會員


發表:30
回覆:92
積分:24
註冊:2003-04-26

發送簡訊給我
#12 引用回覆 回覆 發表時間:2003-06-06 21:33:23 IP:61.221.xxx.xxx 未訂閱
引言: 如hagar大大所說不之你有沒有做過Update ADO 了?
有啊,就是照hagar版主改成 procedure TForm1.SpeedButton7Click(Sender: TObject); var Emp_No: String; begin Emp_No := DataSource1.DataSet.FieldByName('A0').AsString; if messagedlg('確定要刪除?',mtConfirmation,[mbYes, mbNo], 0) = mrYes then begin ADOQuery1.Close; ADOQuery1.SQL.Clear; ADOQuery1.SQL.Text := 'SELECT * FROM pm3d Where (A0 = ' #39 QuotedStr(Emp_No) #39 ')'; ADOQuery1.Open; <-------------- 執行到這一行,會有問題! ADOQuery1.Delete; ADOQuery1.Close; ADOQuery1.SQL.Clear; ADOQuery1.SQL.Add('select * from pm3d'); ADOQuery1.Open; end; end; 錯誤訊息同我所上傳的圖
chih
版主


發表:48
回覆:1186
積分:639
註冊:2002-04-02

發送簡訊給我
#13 引用回覆 回覆 發表時間:2003-06-06 21:46:53 IP:61.216.xxx.xxx 未訂閱
不是啦,Update ADO 你先參考一下這一篇http://delphi.ktop.com.tw/topic.php?topic_id=23330
引言: 有啊,就是照hagar版主改成 .
ha0009
版主


發表:16
回覆:507
積分:639
註冊:2002-03-16

發送簡訊給我
#14 引用回覆 回覆 發表時間:2003-06-06 22:05:38 IP:61.56.xxx.xxx 未訂閱
您好: 我大概看出你的問題了。 QuotedStr 會將字串加的左右各加上 #39 所以才會導致你的 SQL 語法錯誤。 你可以改成下列的方式。(我喜歡的方式^^) SQL := format ('SELECT * FROM pm3d Where (A0 = ''%s'')', ['1000'])      但如果要做刪除動作的話,改用下面的語法可能較有效率喔 >
jawtair
一般會員


發表:30
回覆:92
積分:24
註冊:2003-04-26

發送簡訊給我
#15 引用回覆 回覆 發表時間:2003-06-06 22:53:49 IP:61.221.xxx.xxx 未訂閱
已把DELPHI 7移除,感覺怪怪的,OFFICE XP元件也沒出來,正在灌DELPHI 6如果再不行,就UPDATE了,謝謝版主。
jawtair
一般會員


發表:30
回覆:92
積分:24
註冊:2003-04-26

發送簡訊給我
#16 引用回覆 回覆 發表時間:2003-06-06 23:31:20 IP:61.221.xxx.xxx 未訂閱
引言: 這裏有講到這個問題, 是要 Update ADO 的 參考看看: http://groups.google.com.tw/groups?hl=zh-TW&lr=&ie=UTF-8&oe=UTF-8&th=6d157347f590372a&rnum=2
我上去了, 但是他要我輸入 Login Name: or Email Address: and Password: 請問這資料要如何取得, 或是誰能告訴我正確的下載點, 謝謝!!
chih
版主


發表:48
回覆:1186
積分:639
註冊:2002-04-02

發送簡訊給我
#17 引用回覆 回覆 發表時間:2003-06-07 03:11:54 IP:61.216.xxx.xxx 未訂閱
你要先去網站註冊才能下載ㄋ
引言: 我上去了, 但是他要我輸入 Login Name: or Email Address: and Password: 請問這資料要如何取得, 或是誰能告訴我正確的下載點, 謝謝!!
jawtair
一般會員


發表:30
回覆:92
積分:24
註冊:2003-04-26

發送簡訊給我
#18 引用回覆 回覆 發表時間:2003-06-07 11:01:00 IP:61.221.xxx.xxx 未訂閱
引言: 你要先去網站註冊才能下載ㄋ
請問連結點在那裡,我已經整個網找遍了,仍然找不到
jawtair
一般會員


發表:30
回覆:92
積分:24
註冊:2003-04-26

發送簡訊給我
#19 引用回覆 回覆 發表時間:2003-06-07 11:14:44 IP:61.221.xxx.xxx 未訂閱
找到了,謝謝,正註冊中
jawtair
一般會員


發表:30
回覆:92
積分:24
註冊:2003-04-26

發送簡訊給我
#20 引用回覆 回覆 發表時間:2003-06-07 11:48:19 IP:61.221.xxx.xxx 未訂閱
誰能救救我,我已經浪費許多時間,但無搞定:-(    我已經註冊了,且也收到激活的網址,信件內容如下: Hello, Wang Chao-Tai     Thank you for joining the Borland Community!     This message is being sent to wang.chaotai@msa.hinet.net.  Please do not reply directly to this message.     You are being sent this email message because you have not yet  activated the Borland Community account you created on  Fri Jun  6 20:10:34 PDT 2003.     Here is the login name you provided to our login system:     Login Name: "jawtair"     To activate your community membership, please open the following  location in your web browser:     https://bdn.borland.com/cgi-bin/login/activate.cgi?BG069MJI1CCFJ9     This URL is specific to YOUR user account. Do not provide it to  anyone else, or post it to the public in our newsgroups.     Once you open that location in your browser, your account will  be activated and you will have full access to the Borland  Community Site at     http://community.borland.com     This activation code is for your community membership only. It is  not used for any evaluation products you may also have downloaded.  If you have any problems with your account, please direct them to  accountmgr@borland.com.     If you don't remember trying to login, this is the available  information on the user who made this request:     Remote Address: 61.221.92.180  User Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; Assistant 1.0.2.4)    但是當我要下載,輸入帳號及密碼,卻出現: Registration record not found Your email address was found in the database, however, no product registration was found in the database for your account. Please ensure that your username and password were entered correctly.     Please enter the email address you used when you registered Delphi 6 for authorization to enter the Delphi 6 Registered Users page.     我也曾經請它 Forgot My Password! 寄給我的密碼也沒有錯啊,或是誰能告訴我如何解決這個問題,或是將DELPHI 6 ENTERPRISE版本的更新檔寄給我wang.chaotai@msa.hinet.net謝謝您的協助,我真的一籌某展了
jawtair
一般會員


發表:30
回覆:92
積分:24
註冊:2003-04-26

發送簡訊給我
#21 引用回覆 回覆 發表時間:2003-06-07 11:58:02 IP:61.221.xxx.xxx 未訂閱
請版主們,救救我,我是正版用戶,不是補x,我有正式的保裝序號,我可以傳真給您看,誰能救救我啊
chih
版主


發表:48
回覆:1186
積分:639
註冊:2002-04-02

發送簡訊給我
#22 引用回覆 回覆 發表時間:2003-06-07 13:11:47 IP:61.216.xxx.xxx 未訂閱
hi...jawtair..參考一下站上的資料 http://delphisearch.ktop.com.tw/search.asp?MethodStr=DOIT&SearchStr=update&MyGood=N&memberid=555
jawtair
一般會員


發表:30
回覆:92
積分:24
註冊:2003-04-26

發送簡訊給我
#23 引用回覆 回覆 發表時間:2003-06-07 13:46:47 IP:61.221.xxx.xxx 未訂閱
引言: 這裏有講到這個問題, 是要 Update ADO 的
哇! 一上來有許多更新檔,列出如下,請問是要每一個做更新嗎?會不會互相衝突? Delphi 6 Runtime Library Update 3 StarTeam Integrations Delphi 6 Runtime Library Update 2 General Update 2 CORBA Update for VisiBroker 4.1 CORBA Update for VisiBroker 3.3 dbExpress Informix 9.2.1 Driver dbExpress InterBase 6.5 Driver Additonal Updates 發表人 - jawtair 於 2003/06/07 13:47:47
chih
版主


發表:48
回覆:1186
積分:639
註冊:2002-04-02

發送簡訊給我
#24 引用回覆 回覆 發表時間:2003-06-07 17:13:59 IP:61.216.xxx.xxx 未訂閱
hi..jawtair.. 有關更新檔的問題,你要依照你的delphi版本需求作更新喔...^^ PS:謝謝你喔..我的第100題<>< face="Verdana, Arial, Helvetica">引言: 哇! 一上來有許多更新檔,列出如下,請問是要每一個做更新嗎?會不會互相衝突? . . .
jawtair
一般會員


發表:30
回覆:92
積分:24
註冊:2003-04-26

發送簡訊給我
#25 引用回覆 回覆 發表時間:2003-06-07 18:21:53 IP:61.221.xxx.xxx 未訂閱
引言: PS:謝謝你喔..我的第100題 < face="Verdana, Arial, Helvetica"> 您客氣了,還要謝謝您們,能讓我這初學者,遇問題有求助的地方,100題是您應得的 另外更新後仍有問題,詳情請參閱 >
系統時間:2024-07-05 22:48:33
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!