線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1297
推到 Plurk!
推到 Facebook!

關於資料修改的問題

答題得分者是:william
miga
初階會員


發表:61
回覆:92
積分:30
註冊:2002-08-27

發送簡訊給我
#1 引用回覆 回覆 發表時間:2002-12-16 10:02:10 IP:211.74.xxx.xxx 未訂閱
之前問過了,但是還是不行    舉例來說: 一個學生會修多門課程…也就是一個學號會對應到多個課程代碼 當我抓了其中一筆資料出來修改後, 再存入資料庫中, 往往會造成我要修改的那筆資料還在, 而我改完的那筆資料是覆蓋在該名學生所對應的其它筆資料, 有什麼方法可以避免呢 謝謝    
william
版主


發表:66
回覆:2535
積分:3048
註冊:2002-07-11

發送簡訊給我
#2 引用回覆 回覆 發表時間:2002-12-16 10:07:41 IP:147.8.xxx.xxx 未訂閱
Create a unique key for the table (e.g.學號 課程代碼 (unique?), or simply an auto number field).
miga
初階會員


發表:61
回覆:92
積分:30
註冊:2002-08-27

發送簡訊給我
#3 引用回覆 回覆 發表時間:2002-12-16 11:07:35 IP:211.74.xxx.xxx 未訂閱
引言: Create a unique key for the table (e.g.學號 課程代碼 (unique?), or simply an auto number field).
嗯…我的學號 課號是唯一的,而我的table裡就只有這兩個欄位, 是不是因為這樣,所以當一修改時,他無法判斷應該覆蓋那一筆呢
william
版主


發表:66
回覆:2535
積分:3048
註冊:2002-07-11

發送簡訊給我
#4 引用回覆 回覆 發表時間:2002-12-16 11:12:35 IP:147.8.xxx.xxx 未訂閱
引言:嗯…我的學號 課號是唯一的,而我的table裡就只有這兩個欄位, 是不是因為這樣,所以當一修改時,他無法判斷應該覆蓋那一筆呢
Highly recommend adding a new autonumber field as the primary key if you are using data-aware controls.
miga
初階會員


發表:61
回覆:92
積分:30
註冊:2002-08-27

發送簡訊給我
#5 引用回覆 回覆 發表時間:2002-12-16 11:37:57 IP:211.74.xxx.xxx 未訂閱
引言:嗯…我的學號 課號是唯一的,而我的table裡就只有這兩個欄位, 是不是因為這樣,所以當一修改時,他無法判斷應該覆蓋那一筆呢
Highly recommend adding a new autonumber field as the primary key if you are using data-aware controls. [/quote] 因為這是我們討論出來的table 很難再增加新欄位, 有沒有辦法就這兩個欄位來改善這個問題呢?!
william
版主


發表:66
回覆:2535
積分:3048
註冊:2002-07-11

發送簡訊給我
#6 引用回覆 回覆 發表時間:2002-12-16 11:45:58 IP:147.8.xxx.xxx 未訂閱
引言:因為這是我們討論出來的table 很難再增加新欄位, 有沒有辦法就這兩個欄位來改善這個問題呢?!
How do you modify the record? Using SQL directly or via data-aware controls?
miga
初階會員


發表:61
回覆:92
積分:30
註冊:2002-08-27

發送簡訊給我
#7 引用回覆 回覆 發表時間:2002-12-16 11:53:53 IP:211.74.xxx.xxx 未訂閱
How do you modify the record? Using SQL directly or via data-aware controls?      嗯…我是用dbgrid那個元件,先判斷游標所指的記錄, 然後把該筆記錄叫到我預設的edit裡 接著進行修改, 修改後 table1.ApplyUpdates;        Table1['stu_id']:=Edit1.Text;//stu_id為學生學號        Table1['crs_id']:=Edit2.Text;//crs_id為課程代碼        Table1.Post;    就是這樣子而已…
chih
版主


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

發送簡訊給我
#8 引用回覆 回覆 發表時間:2002-12-16 12:03:33 IP:211.74.xxx.xxx 未訂閱
改這樣試看看.. Table1['stu_id']:=Edit1.Text;//stu_id為學生學號 Table1['crs_id']:=Edit2.Text;//crs_id為課程代碼 Table1.Post; table1.ApplyUpdates;
引言: How do you modify the record? Using SQL directly or via data-aware controls? 嗯…我是用dbgrid那個元件,先判斷游標所指的記錄, 然後把該筆記錄叫到我預設的edit裡 接著進行修改, 修改後 table1.ApplyUpdates; Table1['stu_id']:=Edit1.Text;//stu_id為學生學號 Table1['crs_id']:=Edit2.Text;//crs_id為課程代碼 Table1.Post; 就是這樣子而已… < face="Verdana, Arial, Helvetica">
william
版主


發表:66
回覆:2535
積分:3048
註冊:2002-07-11

發送簡訊給我
#9 引用回覆 回覆 發表時間:2002-12-16 12:06:15 IP:147.8.xxx.xxx 未訂閱
Table1.Edit; { copy/paste error in previous post? } Table1['stu_id']:=Edit1.Text;//stu_id為學生學號 Table1['crs_id']:=Edit2.Text;//crs_id為課程代碼 Table1.Post; 1) are you sure the cursor is correct? 2) why not use TDBEdit then?
miga
初階會員


發表:61
回覆:92
積分:30
註冊:2002-08-27

發送簡訊給我
#10 引用回覆 回覆 發表時間:2002-12-16 12:29:58 IP:211.74.xxx.xxx 未訂閱
引言: Table1.Edit; { copy/paste error in previous post? } Table1['stu_id']:=Edit1.Text;//stu_id為學生學號 Table1['crs_id']:=Edit2.Text;//crs_id為課程代碼 Table1.Post; 1) are you sure the cursor is correct? 2) why not use TDBEdit then?
都沒注意到…原來我修改是用ApplyUpdates 呼…謝謝各位大師
系統時間:2024-11-22 20:14:42
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!