[問題]資料新增時出錯 |
尚未結案
|
iva0629
一般會員 發表:28 回覆:14 積分:8 註冊:2003-08-13 發送簡訊給我 |
請問大大
我在新增資料到資料庫時會出現錯誤
這是我寫的部份
procedure TForm_a1.Button1_addClick(Sender: TObject);
begin
if Edit1.text <> '' then //有輸入
begin
if MessageDlg('確定是否要加選',mtConfirmation,[mbYes,mbNo],0)=mrYes then
begin
try
table1.Edit;
table1.insert;
table1.FieldByName('S_number').value:=edit1.text;
table1.FieldByName('Sub_ID').value:=dbedit1.text;
table1.Post;
table1.Close;
table1.open;
finally
ShowMessage('已修課程');
end;
end
end
else
ShowMessage('請先登入');
end;
會出現
第一次用delphi,請大家多多指教
|
cashxin2002
版主 發表:231 回覆:2555 積分:1937 註冊:2003-03-28 發送簡訊給我 |
您好! 錯誤信息的意思是指資料表未處于新增或修改的狀態, 這樣的話, 就是跟您的Post方法有關, 因為當資料表未處于新增或修改的狀態而執行Post的話, 就會出現這樣的錯誤信息. 但從您的程式碼來看似乎沒有這方面的問題, 但有一些說明如下:
procedure TForm_a1.Button1_addClick(Sender: TObject); begin if Edit1.text <> '' then begin if MessageDlg('確定是否要加選',mtConfirmation,[mbYes,mbNo],0)=mrYes then begin try table1.Edit; table1.insert; //此處有些不解, 為何您要在資料表處于修改(Edit)的狀態時, //又使用新增的方法(Insert), 根据您的需要選擇使用一個即可 table1.FieldByName('S_number').value:=edit1.text; table1.FieldByName('Sub_ID').value:=dbedit1.text; table1.Post; table1.Close; table1.open; finally ShowMessage('已修課程'); end; end;//這里的漏寫了結束分號 end else ShowMessage('請先登入'); end;參考看看! ===================== 努力,相信會獲得美麗! 忻晟 發表人 - cashxin2002 於 2003/10/22 23:46:33
------
忻晟 |
T.J.B
版主 發表:29 回覆:532 積分:497 註冊:2002-08-14 發送簡訊給我 |
|
iva0629
一般會員 發表:28 回覆:14 積分:8 註冊:2003-08-13 發送簡訊給我 |
|
hagar
版主 發表:143 回覆:4056 積分:4445 註冊:2002-04-14 發送簡訊給我 |
引言:關於漏寫分號這部份這樣子是可以的 end 前面一句的分號是可以不寫的 以下是合法的範例:procedure TForm_a1.Button1_addClick(Sender: TObject); begin if Edit1.text <> '' then begin if MessageDlg('確定是否要加選',mtConfirmation,[mbYes,mbNo],0)=mrYes then begin // ... end;//這里的漏寫了結束分號 end else ShowMessage('請先登入'); end; procedure TForm1.Button2Click(Sender: TObject); begin ShowMessage('test') // 這行可以不加分號 end; procedure TForm1.Button2Click(Sender: TObject); var i: integer; begin try i := 3 5; ShowMessage(IntToStr(i)) // 這行可以不加分號 finally end; end; procedure TForm1.Button2Click(Sender: TObject); var i: integer; begin i := 3 5; if i > 10 then begin ShowMessage('i > 10') // 不加分號 end else begin ShowMessage('i < 10') // 不加分號 end // 這個 end 也可以不加分號 end;--- 歡迎光臨 KTop 研究院 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |