另外一個新增的問題 |
尚未結案
|
iva0629
一般會員 發表:28 回覆:14 積分:8 註冊:2003-08-13 發送簡訊給我 |
前一個新增的問題解決了
可是又出現了這個問題
怎麼按鈕裡面一開始就寫了 Table2.Insert;
可是還會出現↓這個訊息框哩??? 不懂??? 我的程式碼
Table2.Insert;
Table2['Sub_ID']:=DBText4.Caption;
Table2Year.Value:=StrToInt(Edit1.text);
Table2SS.Value:=StrToInt(Edit2.text);
table2.Post;
table2.Close;
table2.Open;
ShowMessage('已加入此課程');
Edit1.Clear;
Edit2.Clear; ps.我的Year 和 SS 的欄位型態是整數 另外一個問題
選擇同科系的
在Table1寫入 Accept:=ComboBox2.Text=Table2Major.asstring;
按鈕 Table1.Filtered:=TRUE;
資料呈現在DBGrid2 對應Table2 選擇同年度的
在Table2寫入 Accept:=ComboBox1.Text=Table2Year.asstring;
按鈕 Table2.Filtered:=TRUE;
資料呈現在DBGrid1 對應Table1 這樣不是能出現ComboBox所選擇的資料嗎
可是阿 我選了科系後 再選年度
或者是先選擇年度 在選科系 然後再回去選擇年度
而呈現年度的DBGrid2就會有些欄位會無法顯示出來耶
怎麼辦哩 煩惱中.... ↓
|
leo2568
中階會員 發表:54 回覆:124 積分:70 註冊:2003-09-21 發送簡訊給我 |
|
iva0629
一般會員 發表:28 回覆:14 積分:8 註冊:2003-08-13 發送簡訊給我 |
|
leo2568
中階會員 發表:54 回覆:124 積分:70 註冊:2003-09-21 發送簡訊給我 |
|
cashxin2002
版主 發表:231 回覆:2555 積分:1937 註冊:2003-03-28 發送簡訊給我 |
您好! CachedUpdate屬性值的作用是決定是否開啟批次Update異動資料的功能. 應該和您的問題沒有關系. 請將您的程式碼改為如下試試:
begin Table2.Open; Table2.Insert; Table2['Sub_ID'] := DBText4.Caption; Table2Year.Value := StrToInt(Edit1.text); Table2SS.Value := StrToInt(Edit2.text); Table2.Post; Table2.Close; Table2.Open; ShowMessage('已加入此課程'); Edit1.Clear; Edit2.Clear; end;此外, 建議您盡量不要使用Value的方法來寫諸如此類的程式碼, 既然已經知道了欄位的形態, 就可以直接以形態指定提高效率, 如下: begin Table2.Open; Table2.Insert; Table2.FieldByName('Sub_ID').AsString := DBText4.Caption; Table2.FieldByName('Year').AsInteger := StrToInt(Edit1.text); Table2.FieldByName('SS').AsInteger := StrToInt(Edit2.text); Table2.Post; Table2.Close; Table2.Open; ShowMessage('已加入此課程'); Edit1.Clear; Edit2.Clear; end;參考看看! ===================== 努力,相信會獲得美麗! 忻晟
------
忻晟 |
iva0629
一般會員 發表:28 回覆:14 積分:8 註冊:2003-08-13 發送簡訊給我 |
|
leo2568
中階會員 發表:54 回覆:124 積分:70 註冊:2003-09-21 發送簡訊給我 |
引言: -------------------------------------------------------------------------------- 這樣不是能出現ComboBox所選擇的資料嗎可是阿 我選了科系後 再選年度或者是先選擇年度 在選科系 然後再回去選擇年度而呈現年度的DBGrid2就會有些欄位會無法顯示出來耶怎麼辦哩 煩惱中.... -------------------------------------------------------------------------------- 我已經加入了 Table2.Open; 也照cashxin2002 版主的意見改 DBText和Edit的傳回了 可是還是一樣說 怎麼辦~~~~程式異常原因不只如此,你可以把程式碼po到會員程式檔案求助區,也許有人能幫你解答 -- http://delphi.ktop.com.tw/loadfile.php?TOPICID=12921592&CC=288988 發表人 - leo2568 於 2003/11/29 02:25:09 發表人 - leo2568 於 2003/11/29 09:36:52 |
cashxin2002
版主 發表:231 回覆:2555 積分:1937 註冊:2003-03-28 發送簡訊給我 |
|
cashxin2002
版主 發表:231 回覆:2555 積分:1937 註冊:2003-03-28 發送簡訊給我 |
您好! 另外一個問題
選擇同科系的
在Table1寫入 Accept:=ComboBox2.Text=Table2Major.asstring;
按鈕 Table1.Filtered:=TRUE;
資料呈現在DBGrid2 對應Table2 選擇同年度的
在Table2寫入 Accept:=ComboBox1.Text=Table2Year.asstring;
按鈕 Table2.Filtered:=TRUE;
資料呈現在DBGrid1 對應Table1 這樣不是能出現ComboBox所選擇的資料嗎
可是阿 我選了科系後 再選年度
或者是先選擇年度 在選科系 然後再回去選擇年度
而呈現年度的DBGrid2就會有些欄位會無法顯示出來耶
怎麼辦哩 煩惱中.... 利用Filter屬性配合OnFilterRecord事件來處理過濾資料的事務, 您所說的現象是否是此過濾方法的Bug還是雙重過濾所引起的現象, 暫且不論, 但此方法涉及到效率不佳的問題, 至于您所說的怎么辦哩, 小弟覺得選用Query元件會有效率得多, 範例如下:
單條件查詢: begin Query1.Close; Query1.SQL.Clear; Query1.SQL.Add('Select * From 資料表名 Where Major=''' ComboBox2.Text ''''); Query1.Open; end; 雙條件查詢: begin Query1.Close; Query1.SQL.Clear; Query1.SQL.Add('Select * From 資料表名 Where Major=''' ComboBox2.Text ''' and Year=''' ComboBox1.Text ''''); Query1.Open; end;參考看看! ===================== 努力,相信會獲得美麗! 忻晟
------
忻晟 |
iva0629
一般會員 發表:28 回覆:14 積分:8 註冊:2003-08-13 發送簡訊給我 |
|
cashxin2002
版主 發表:231 回覆:2555 積分:1937 註冊:2003-03-28 發送簡訊給我 |
您好﹗ 錯誤出現的原因是當前資料集元件Table2還未處于dsInsert(新增)或dsEdit(修改)狀態﹐當此時﹐執行Post方法時不能有效的將資料存入資料庫﹐所以就會出現這樣的錯誤﹐從這方面去查一下吧﹒ Query元件的使用其實和Table很相似﹐其區別是Query除了可使用通用的DataSet各種方法之外(如Open, Close, Edit, Post等等)﹐其對資料表內容的擷選是利用SQL屬性中的SQL語句來指定的﹐而Table指定資料庫是設定TableName屬性值﹒ 比如說Table元件要連接[資料表1]﹐只需要設定其DatabaseName屬性值和TableName屬性設定為資料表1﹐而后將Activate設為True或Table.Open的方法即可擷取到資料﹒
而Query元件要連接[資料表1]的方法﹐是需要設定其DatabaseName屬性值(此步驟同Table部分)﹐再在SQL屬性中輸入查詢語句: Select * From 資料表1﹐而后將Activate屬性設為True或者Query.Open的方法即可擷取到資料﹒ 參考看看﹗ =====================
努力,相信會獲得美麗!
忻晟
------
忻晟 |
leo2568
中階會員 發表:54 回覆:124 積分:70 註冊:2003-09-21 發送簡訊給我 |
修正 table2 新增記錄問題:
方法:table2.InsertRecord([dbedit3.Text,null,null,dbedit4.text]); This statement appends a record to the Customer dataset.<>
class="code">
Customer.InsertRecord([CustNoEdit.Text,CoNameEdit.Text,
AddrEdit.Text, Null, Null, Null, Null, Null, Null,
iscountEdit.Text]);
你的程式結構使用Table2.Insert;的程式碼不太可行,請改以下方式新增記錄:
Table2.InsertRecord([dbtext4.Caption,null,null,null]); ...... Table2.Post;你的table2 dataset是 Master/Detail型態,所以有不同作法.... 你懂我的明白嗎? 發表人 - leo2568 於 2003/11/29 18:36:04 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |