Access作資料庫刪除和新增的問題 |
答題得分者是:tech_state
|
pandaforme
一般會員 發表:10 回覆:15 積分:5 註冊:2003-07-18 發送簡訊給我 |
我用insert這method去增加好幾筆資料 但是為什麼到最後 tabel只剩下最後一 筆資料 假如一開始Access裡面有資料的話 那我要增加的筆數都可以全部在 tabel顯示 假如是空的話 只會顯示最後一筆資料 還有我想把資料庫的資料全部刪除 用emptytable這method去刪除是可以 但是刪除完後要繼續insert好幾筆資料 結果也是顯示最後一筆 論壇的文章 和 程式碼我都試過 看過了 結果還是一樣 只會顯示最後一筆 假如一開始是空的資料庫 我的程式是那麼寫的: Tabel1->Open();
Tabel1->Insert();
Tabel1Line->Value = "xxx";
Table1Label->Value = "aaa";
Table1->Post();
Tabel1->Insert();
.
.
.
繼續insert好幾筆資料
Table1->Post(); //清除所有的資料
Table1->Close();
Table1->EmptyTabel(); 不知道我這樣寫 是不是哪裡出了錯 請各位大大幫我指出哪裡錯 謝謝你們
|
tech_state
版主 發表:44 回覆:638 積分:641 註冊:2003-02-10 發送簡訊給我 |
pandaforme, 您好
看不出您的問題點在哪裡,
方便的話可否上傳您的Project和Database,
這樣大家比較知道如何幫您。 會員求助程式檔案上傳區
http://delphi.ktop.com.tw/forum.asp?FORUM_ID=97 =================================
涵養怒中氣。謹防順口言。留心忙裡錯。珍惜有時錢。
是非終日有,不聽自然無
天下本無事,庸人自擾之
|
pandaforme
一般會員 發表:10 回覆:15 積分:5 註冊:2003-07-18 發送簡訊給我 |
因為程式碼很長 所以我把主要的Po上來 希望版主大人可以幫我解答 Form2->Table1->Open(); Form2->Table1->Insert();
Form2->Table1Line->Value = LineTemp ;
Form2->Table1Location->Value = source[next].Loc;
Form2->Table1Label->Value = source[next].Label;
Form2->Table1OPcode->Value = source[next].OPcode;
Form2->Table1OPerand->Value = source[next].Operand;
Form2->Table1ObjectCode->Value = source[next].ObjectCode;
Form2->Table1->Post(); 之後就是經過一些迴圈 和 if 的判斷 決定 繼續Insert資料
Form2->Table1->Insert();
Form2->Table1Line->Value = LineTemp ;
Form2->Table1Location->Value = source[next].Loc;
Form2->Table1Label->Value = source[next].Label;
Form2->Table1OPcode->Value = source[next].OPcode;
Form2->Table1OPerand->Value = source[next].Operand;
Form2->Table1ObjectCode->Value = source[next].ObjectCode;
Form2->Table1->Post(); 然後程式就結束了 假如一開始Access都沒有任何資料在裡面 Form2的Table 只會跑出最後一筆 Insert的資料 其他的資料都不見了 然後我執行第二次 結果是連第一次Insert的資料和這次Insert的資料一起跑出 來 是我的程式碼部分錯 還是 Access設定有錯呢 煩請版主大人的回覆
|
pandaforme
一般會員 發表:10 回覆:15 積分:5 註冊:2003-07-18 發送簡訊給我 |
|
tech_state
版主 發表:44 回覆:638 積分:641 註冊:2003-02-10 發送簡訊給我 |
pandaforme, 您好
你是否有透過DBGrid來顯示資料?
由您的提供的code,真的看不出問題到底出在哪裡。
或許您可以試試看在Table1->Post();之後,加上以下的code試試看。
Table1->Active = false; Table1->Active = true; 或是 Table1->Refresh();如果還是有問題,而您又不方便上傳您的Project和Database,那只能請您再說說您的Database的結構及設定。不然真的愛莫能助了。 ================================= <>涵養怒中氣。謹防順口言。留心忙裡錯。珍惜有時錢。> <>是非終日有,不聽自然無> <>天下本無事,庸人自擾之> |
pandaforme
一般會員 發表:10 回覆:15 積分:5 註冊:2003-07-18 發送簡訊給我 |
我今天下午改用ADO連就沒有這問題了 用BDE連就有好怪喔 :< 我還有一個問題要麻煩各位大大了 就是怎麼刪除整個資料庫的資料 假如是用ADO連的 是用ADOTable1->DeleteRecords(arAll)去刪嗎 我用了這函式後 就會一直產生這個例外 Connot perform this operation a closed dataset 我也有把ADOTable1->Open() 在執行ADOTable1->DeleteRecords(arAll) 結果還是一樣 再麻煩一次大家了 也很感謝版主很熱心幫我回答
|
tech_state
版主 發表:44 回覆:638 積分:641 註冊:2003-02-10 發送簡訊給我 |
pandaforme, 您好
使用DeleteRecords是有Database限制的,以下是由Help檔找到的限制說明,我想Access應該是不支援這個Method吧!
If the recordset does not support record deletions, an exception is thrown. 另外,如果要做到這個功能,可以改用TADOQuery這個元件,以下的code供您參考看看。
ADOQuery1->Close(); ADOQuery1->SQL->Text = "delete from Table_Name"; ADOQuery1->ExecSQL();================================= 涵養怒中氣。謹防順口言。留心忙裡錯。珍惜有時錢。 是非終日有,不聽自然無 天下本無事,庸人自擾之 |
pandaforme
一般會員 發表:10 回覆:15 積分:5 註冊:2003-07-18 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |