如何插入一筆資料, 且下次進來後可照畫面資料排序 |
答題得分者是:jeffreck
|
Miles
尊榮會員 發表:27 回覆:662 積分:622 註冊:2002-07-12 發送簡訊給我 |
|
timhuang
尊榮會員 發表:78 回覆:1815 積分:1608 註冊:2002-07-15 發送簡訊給我 |
有一個不是很好的方法. 不過可以試試, 尤其當資料量大的時候.
將你新開的欄位其格式改為 numeric(9,9) (或是其他類似浮點數的欄位皆可),
原有的資料填入整數即可. 然後在 user 輸入資料時, 看插入的位置, 其前後
筆的數值來填入插入資料的對應值.
例如: 張三 1
李四 2
王五 3 在張三和李四間插入了, 趙高和李斯兩人的話, 就將 1 和 2 分三份, 分別將
趙高設入值為 1.33333333, 李斯為 1.666666666 如下即可!! 張三 1
趙高 1.3333333
李斯 1.6666666
李四 2
王五 3 之後再插入的資料也是如法炮製, 要是該欄位的離散度不足, 再整個重給一次
整數的排序值即可 (但應該是不會有離散度的問題, 只有精確度的問題, 當精確
度不足時, 再整個重跑一次即可) 如此一來速度應該會快得多!!
|
Miles
尊榮會員 發表:27 回覆:662 積分:622 註冊:2002-07-12 發送簡訊給我 |
引言: 有一個不是很好的方法. 不過可以試試, 尤其當資料量大的時候. 將你新開的欄位其格式改為 numeric(9,9) (或是其他類似浮點數的欄位皆可), 原有的資料填入整數即可. 然後在 user 輸入資料時, 看插入的位置, 其前後 筆的數值來填入插入資料的對應值. 例如: 張三 1 李四 2 王五 3 在張三和李四間插入了, 趙高和李斯兩人的話, 就將 1 和 2 分三份, 分別將 趙高設入值為 1.33333333, 李斯為 1.666666666 如下即可!! 張三 1 趙高 1.3333333 李斯 1.6666666 李四 2 王五 3 之後再插入的資料也是如法炮製, 要是該欄位的離散度不足, 再整個重給一次 整數的排序值即可 (但應該是不會有離散度的問題, 只有精確度的問題, 當精確 度不足時, 再整個重跑一次即可) 如此一來速度應該會快得多!!Dear : 這方式我有想過, 不過目前可能不會使用, 因為變數太多了. 感謝timhuang大大的回答. 我不是高手, 高手是正在銀幕前微笑的人.
------
我不是高手, 高手是正在銀幕前微笑的人. |
chih
版主 發表:48 回覆:1186 積分:639 註冊:2002-04-02 發送簡訊給我 |
你應該把你那個新的欄位(SEQ_NO)也寫進Table當成key值,應該就可以Order by了吧..POST時候用SQL語法整批寫回..因為SEQ_NO有可能隨著插入一筆而改變了
TRY TRY SEE..
引言: 各位先進大家好: 如何在DataSet中插入一筆資料並且下次進來看到的資料還是照此次的資料紀錄排序.目前的做法是開一個新的欄位, 存檔時從第一筆存到最後一筆, 那個欄位一直累加一存入, 下次進來就照累加的欄位排序, 但是當我資料量大時, 這個方法行不通, 因為實在太久了, 是否有其他方法. 小弟使用的是InterBase 感謝各位不吝賜教. 我不是高手, 高手是正在銀幕前微笑的人. |
T.J.B
版主 發表:29 回覆:532 積分:497 註冊:2002-08-14 發送簡訊給我 |
|
Miles
尊榮會員 發表:27 回覆:662 積分:622 註冊:2002-07-12 發送簡訊給我 |
引言: 你應該把你那個新的欄位(SEQ_NO)也寫進Table當成key值,應該就可以Order by了吧..POST時候用SQL語法整批寫回..因為SEQ_NO有可能隨著插入一筆而改變了 TRY TRY SEE..chih先進你好: 請問我要如何新增一個Seq_NO的欄位, 我的意思是會隨著資料變動跟著變動的欄位, 小弟已經有在Table中多一個紀錄順序的欄位, 只是要回存時變成需要一個迴圈去填那個欄位 感謝不吝賜教 我不是高手, 高手是正在銀幕前微笑的人.
------
我不是高手, 高手是正在銀幕前微笑的人. |
Miles
尊榮會員 發表:27 回覆:662 積分:622 註冊:2002-07-12 發送簡訊給我 |
|
chih
版主 發表:48 回覆:1186 積分:639 註冊:2002-04-02 發送簡訊給我 |
原資料
ID SEQ_NO A1 紀錄順序欄位
-------------------------------
1 10 A 1
1 20 B 2
1 30 C 3
在 B跟C間插入一筆後變成
ID SEQ_NO A1 紀錄順序欄位
-------------------------------------------
1 10 A 1
1 20 B 2
1 30 D 3
1 40 C 4
那這樣應該可以用你自己紀錄順序欄位去更新SEQ_NO了吧??
因為沒有你的Table格式,我隨寫幾個..不知道這樣清不清楚??
TRY TRY SEE..
引言: chih先進你好: 請問我要如何新增一個Seq_NO的欄位, 我的意思是會隨著資料變動跟著變動的欄位, 小弟已經有在Table中多一個紀錄順序的欄位, 只是要回存時變成需要一個迴圈去填那個欄位 感謝不吝賜教 我不是高手, 高手是正在銀幕前微笑的人. >>< face="Verdana, Arial, Helvetica"> |
ko
資深會員 發表:28 回覆:785 積分:444 註冊:2002-08-14 發送簡訊給我 |
|
jeffreck
高階會員 發表:247 回覆:340 積分:197 註冊:2003-01-23 發送簡訊給我 |
|
Miles
尊榮會員 發表:27 回覆:662 積分:622 註冊:2002-07-12 發送簡訊給我 |
引言: 使用 QUERY 的 UPDATE試試 1 AA 2 BB 3 CC 4 DD 於 BB及CC中新增一筆 使用 QUERY 的 UPDATE ,試試速度是否較快 如下: UPDATE Table1 SET Table1.順序 = [順序] 1 WHERE (((Table1.順序)>2));感謝jeffreck兄提供的方法, 目前只好先這樣做, 也許可以利用Store Procedure 或Trigger的方式, 但小弟對InterBase的東西還不太熟, 若各位先進有 更好的想法請再幫幫忙, 也感謝timhuang, chih, T.J.B,ko兄的幫忙. 我不是高手, 高手是正在銀幕前微笑的人.
------
我不是高手, 高手是正在銀幕前微笑的人. |
懷舊的人
高階會員 發表:28 回覆:152 積分:141 註冊:2003-01-08 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |