檔案刪除發生問題? |
答題得分者是:christie
|
lasterliu
一般會員 ![]() ![]() 發表:38 回覆:57 積分:19 註冊:2007-11-05 發送簡訊給我 |
1、請問一下各位,小弟下列程式是否有錯誤,執行時會出現一個錯誤視窗。
2、另外想再請問一個問題,Form是用繼承建立的,繼承的程式中有寫了一個程序"目的是在Form中按下Enter後會自動跳下一個欄位",現在我在自己的程式中的ComboBox有建立新增、刪除、修改三個選項,目的也是想在KeyPress按下Enter即可直行我寫的程式,但他都會先跑繼承的那條程序,也就是說按下Enter只會跳下一欄,但都不會執行我的程式,請問我該如何解決這問題呢? 以下是我的程式碼:請各位專家可以開導一下小弟該如何解決 procedure TCIS2007_StandFormf1.CB_ChooseKeyPress(Sender: TObject; var Key: Char); begin inherited; if key=#13 then begin if select=1 then begin ADOSQL1.Append; DBEdit1.SetFocus; end else if select=2 then begin if MessageDlg('確定刪除這筆資料?',mtConfirmation, [mbYes, mbNo], 0)=mrYes then begin ADOSQL2.Close; ADOSQL2.SQL.Add('Use SCSCapex'); ADOSQL2.SQL.Add('Delete from MWP000'); ADOSQL2.SQL.Add('Where N_ITM=' DBEdit1.Text); ADOSQL2.ExecSQL; end else abort; end else if select=3 then begin ADOSQL1.Edit; DBEdit1.SetFocus; end else CB_Choose.SetFocus; end; end; |
christie
資深會員 ![]() ![]() ![]() ![]() ![]() 發表:30 回覆:299 積分:475 註冊:2005-03-25 發送簡訊給我 |
procedure TCIS2007_StandFormf1.CB_ChooseKeyPress(Sender: TObject;
var Key: Char); begin inherited; if key=#13 then begin if select=1 then begin ADOSQL1.Append; DBEdit1.SetFocus; end else if select=2 then begin if MessageDlg('確定刪除這筆資料?',mtConfirmation, [mbYes, mbNo], 0)=mrYes then begin ADOSQL2.Close; ADOSQL2.SQL.Add('Use SCSCapex');<----請刪掉 這一行 ADOSQL2.SQL.Add('Delete from MWP000'); ADOSQL2.SQL.Add('Where N_ITM=' DBEdit1.Text); ADOSQL2.ExecSQL; end else abort; end else if select=3 then begin ADOSQL1.Edit; DBEdit1.SetFocus; end else CB_Choose.SetFocus; end; end;
------
What do we live for if not to make life less difficult for each other? |
lasterliu
一般會員 ![]() ![]() 發表:38 回覆:57 積分:19 註冊:2007-11-05 發送簡訊給我 |
===================引 用 christie 文 章=================== procedure TCIS2007_StandFormf1.CB_ChooseKeyPress(Sender: TObject; var Key: Char); begin inherited; if key=#13 then begin if select=1 then begin ADOSQL1.Append; DBEdit1.SetFocus; end else if select=2 then begin if MessageDlg('確定刪除這筆資料?',mtConfirmation, [mbYes, mbNo], 0)=mrYes then begin ADOSQL2.Close; ADOSQL2.SQL.Add('Use SCSCapex');<----請刪掉 這一行 ADOSQL2.SQL.Add('Delete from MWP000'); ADOSQL2.SQL.Add('Where N_ITM=' DBEdit1.Text); ADOSQL2.ExecSQL; end else abort; end else if select=3 then begin ADOSQL1.Edit; DBEdit1.SetFocus; end else CB_Choose.SetFocus; end; end; 謝謝christie大大熱心的回覆,但我的問題跟那一行沒有關係,去掉那行還是一樣,麻煩大大們可以在幫小弟找找問題是出在哪?? |
Coffee
版主 ![]() ![]() ![]() ![]() ![]() ![]() 發表:31 回覆:878 積分:561 註冊:2006-11-15 發送簡訊給我 |
我比較好奇的是,你只是貼了「你覺得有問題的地方」,
但是你有試過單步執行了嗎? 如果有,麻煩請你把你提到的「錯誤訊息」貼出來,把單步追蹤的結果貼上來, 其實我想你應該能找到問題才是,就算不行,起碼大家還能幫你找答案。 另外,雖然你是寫DB 的程式,但是看看你的問題,其實這似乎不算是資料庫這方面造成的問題。
------
不論是否我發的文,在能力範圍皆很樂意為大家回答問題。 為了補我的能力不足之處,以及讓答案可以被重複的使用,希望大家能儘量以公開的方式問問題。 在引述到我的文時自然會儘量替各位想辦法,謝謝大家! |
lasterliu
一般會員 ![]() ![]() 發表:38 回覆:57 積分:19 註冊:2007-11-05 發送簡訊給我 |
|
lasterliu
一般會員 ![]() ![]() 發表:38 回覆:57 積分:19 註冊:2007-11-05 發送簡訊給我 |
不好意思,我在補充一下,
我資料庫的第一筆資料大概為此 10305360GB C 2 G NULL NULL 0 0 NULL C P B D 0.003 0.005 0 20 10 0 0 111 2 NULL 0 0 110 1 1 32.5 2.5 2.5 100 0.5 0.5 360 10 10 0 0 0 0 300 60 8 | | key 若假設我有一筆資料的key為123 我在SQL中,自己下語法 delete from table_name where N_ITM=123 即會出現下面之訊息(此訊息跟我程式出現錯誤訊息好像一樣) 訊息 245,層級 16,狀態 1,行 1 將 nvarchar 值 '10305360GB' 轉換成資料類型 int 時,轉換失敗。 若把程式改為delete from table_name where N_ITM='123'------只差了個單引號 即OK,所以我想會不會是我這行程式 ADOSQL2.SQL.Add('Where N_ITM=' DBEdit1.Text); 紅色部分是不是也要加上兩個單引號才會OK呢?但是我不會加兩個單引號,我加了程式就怪怪的不能執行,它會把那航權都當作字串。不知我這補充有沒有用,請各位大大若有空可以在幫我一下。 |
christie
資深會員 ![]() ![]() ![]() ![]() ![]() 發表:30 回覆:299 積分:475 註冊:2005-03-25 發送簡訊給我 |
procedure TCIS2007_StandFormf1.CB_ChooseKeyPress(Sender: TObject;
var Key: Char); begin inherited; if key=#13 then begin if select=1 then begin ADOSQL1.Append; DBEdit1.SetFocus; end else if select=2 then begin if MessageDlg('確定刪除這筆資料?',mtConfirmation, [mbYes, mbNo], 0)=mrYes then begin ADOSQL2.Close; ADOSQL2.SQL.Add('Use SCSCapex');<----請刪掉 這一行 ADOSQL2.SQL.Clear; ADOSQL2.SQL.Add('Delete from MWP000'); ADOSQL2.SQL.Add('Where N_ITM= :P1');<---改傳參數 ADOSQL2.Parameters.ParamValues['P1']:= DBEdit1.Text;);<---傳參數 給值 ADOSQL2.ExecSQL; end else abort; end else if select=3 then begin ADOSQL1.Edit; DBEdit1.SetFocus; end else CB_Choose.SetFocus; end; end;
------
What do we live for if not to make life less difficult for each other? |
lasterliu
一般會員 ![]() ![]() 發表:38 回覆:57 積分:19 註冊:2007-11-05 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |