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

DBGird資料更新!

尚未結案
rabinson
一般會員


發表:19
回覆:7
積分:5
註冊:2004-02-18

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-11-22 15:07:09 IP:61.66.xxx.xxx 未訂閱
各位大大您好! 我透過ADOQuery的方式將table當中 value值為0的資料select出來 如果我抓出有50筆秀在DBGrid上,我要將所有select出來value為0的50筆欄位修改為100後 再存回資料庫,我該怎麼著手呢? ^^" 努力學習Delphi中
seaturn99
版主


發表:69
回覆:427
積分:214
註冊:2003-08-25

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-11-22 15:13:56 IP:220.130.xxx.xxx 未訂閱
rabinson 您好 :    假設您的 select SQL 語法為 : select * from tb1 where field1=0 update tb1 set field1=100 where field1=0 紅色標記的地方請換成您自己的 Table Name 與 Field Name ---- 我只會兩件事,這也不會,那也不會 眼見不一定為真 ---- 發表人 - SouthWind 於 2004/11/22 15:16:43
rabinson
一般會員


發表:19
回覆:7
積分:5
註冊:2004-02-18

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-11-22 16:58:55 IP:61.66.xxx.xxx 未訂閱
謝謝大大的提醒! ^^ 我已經可以更新資料回存資料庫,我又想到另一個問題, :p 如果我要更新的資料是隨機去抓介於2500~3500的資料去回存 (不是遞增或遞減) 我該如何著手呢? 努力Delphi中~~
seaturn99
版主


發表:69
回覆:427
積分:214
註冊:2003-08-25

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-11-22 17:13:05 IP:220.130.xxx.xxx 未訂閱
引言: 謝謝大大的提醒! ^^ 我已經可以更新資料回存資料庫,我又想到另一個問題, :p 如果我要更新的資料是隨機去抓介於2500~3500的資料去回存 (不是遞增或遞減) 我該如何著手呢?
rabinson 您好 : 我不是大大 .. .. 請問一下隨機的意思是?? 取出介於 >=
cashxin2002
版主


發表:231
回覆:2555
積分:1937
註冊:2003-03-28

發送簡訊給我
#5 引用回覆 回覆 發表時間:2004-11-22 17:18:28 IP:202.62.xxx.xxx 未訂閱
您好﹗    2500至3000是指什么﹖欄位值還是筆數﹖    ========================= 我是您的朋友﹐有您真好﹗ =========================
------
忻晟
rabinson
一般會員


發表:19
回覆:7
積分:5
註冊:2004-02-18

發送簡訊給我
#6 引用回覆 回覆 發表時間:2004-11-22 17:40:48 IP:61.66.xxx.xxx 未訂閱
Sorry~ 可能解釋不清!! 應該是說 我select 資料庫當中value這個欄位的值是 0 有100筆資料, 但我今天要update回資料庫,要把value更新為 介於2500~3500之間的數值回存資料庫。 但是100筆的數值不是2500、2501....的回存,而是隨機抓2500~3500之間的數值回存 ,不知這樣的說明清楚了嗎? ^^" 努力Delphi中~~~
seaturn99
版主


發表:69
回覆:427
積分:214
註冊:2003-08-25

發送簡訊給我
#7 引用回覆 回覆 發表時間:2004-11-22 18:17:34 IP:220.130.xxx.xxx 未訂閱
引言: Sorry~ 可能解釋不清!! 應該是說 我select 資料庫當中value這個欄位的值是 0 有100筆資料, 但我今天要update回資料庫,要把value更新為 介於2500~3500之間的數值回存資料庫。 但是100筆的數值不是2500、2501....的回存,而是隨機抓2500~3500之間的數值回存 ,不知這樣的說明清楚了嗎? ^^"
rabinson 您好 : 如果是 SQL Server (Access 應該也可以),利用撰寫 Function , update tb1 set field1=GetRandom() where field1=0 方法一 : SQL Server 有內部 Function Rand(),由於您要 2500~3500 間的數值,且也不能每次跑出來都一樣(若想 100 筆都一樣,可以直接使用 Rand),故撰寫 GetRandom() function ,而 function 內可以利用 Rand 函數 ... (若是 100 筆資料只挑選一個亂數 Update ,亦可由程式碼產生一亂數,寫入 SQL command) 方法二 : 下 select * from tb1 where field1=0 SQL 語法後 .. 寫入以下 code ,由程式生成亂數 ..
while not ADOQuery1.Eof do
begin
  Randomize;
  ADOQuery1.FieldByName('Field1').AsInteger :=  2500   Random(3500-2500);
  ADOQuery1.Next;
end;
PS. 請注意上面這段 Code 有可能取出數個相同之亂數,若要排除,要另外設計方法 .. ---- 我只會兩件事,這也不會,那也不會 眼見不一定為真 ----
系統時間:2024-04-27 13:39:18
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!