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

有關DBGRID和資料庫之間的問題@@

答題得分者是:l630521
kespwfds
一般會員


發表:1
回覆:3
積分:0
註冊:2004-10-25

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-10-25 15:14:27 IP:220.142.xxx.xxx 未訂閱
各位大大你們好: 請問一下,我們把SQL SERVER2000的資料庫(欄位分別有 trade_data , contract , account_day , open_price , max_price , min_price , close_price , deal_price , settle_price , not_writeoff_contract),做查詢後,然後得到數筆資料,然後這些資料用DBGRID顯示出來後,我們有沒有方法讓使用者點選自己想要的幾筆資料然後存取到另一個資料庫中(個人名細表,欄位如下:user_id , trade_data , account_day , contract , settle_price , trade_number , narnest_money等),而資料只要個人名細表有的那幾個欄位(是不是把幾個不需要的把它隱藏起來就可以了@@?)打的有點亂~~~~讓大大們看辛苦了還請多見諒謝謝~^^
------
Delphi K.Top真是個好地方,很多大大會幫助我們這些嫩嫩的初心者~~ya
wameng
版主


發表:31
回覆:1336
積分:1188
註冊:2004-09-16

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-10-25 15:33:33 IP:61.31.xxx.xxx 未訂閱
在 DBGRID的 Columns 有提供 Visible DBGRID1.Columns[2].Visible := false;隱藏。
l630521
資深會員


發表:15
回覆:349
積分:372
註冊:2003-02-17

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-10-25 15:39:51 IP:220.228.xxx.xxx 未訂閱
不好意思,差個花! DBGrid的Columns屬性不是可以去編輯要秀出哪些欄位,只要在Columns裡把你要秀出來的欄位加進去就好了,不要秀的就不要加了! 不知我有沒有看錯題意! Ian
kespwfds
一般會員


發表:1
回覆:3
積分:0
註冊:2004-10-25

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-10-25 16:07:17 IP:220.142.xxx.xxx 未訂閱
引言: 不好意思,差個花! DBGrid的Columns屬性不是可以去編輯要秀出哪些欄位,只要在Columns裡把你要秀出來的欄位加進去就好了,不要秀的就不要加了! 不知我有沒有看錯題意! Ian
恩恩~~謝謝上面兩位大大的回答~~ 那如果我們也需要全部的欄位,編輯好之後, 是否可以利用自己編輯後的欄位然後存取到指定的地方呢? ex:我們查出了十筆資料,然後有十個欄位, 如果我想要第三筆(第三列)的資料,然後又將第三筆中123678等欄位存入另個資料庫,醬子要怎麼寫哩@@""
------
Delphi K.Top真是個好地方,很多大大會幫助我們這些嫩嫩的初心者~~ya
l630521
資深會員


發表:15
回覆:349
積分:372
註冊:2003-02-17

發送簡訊給我
#5 引用回覆 回覆 發表時間:2004-10-25 16:24:50 IP:220.228.xxx.xxx 未訂閱
這得看你另外一個資料表有沒有拉DataSet了,如果有的話 Target.FieldByName('Field1').AsString := Source.FieldByName('Field1').Asstring; Target.FieldByName('Field2').AsString := Source.FieldByName('Field2').Asstring; . . . Target.FieldByName('Fieldn').AsString := Source.FieldByName('Fieldn').Asstring; 否則的話,也可以另外用TADODataSet去執行Insert的SQL語法。 Ian
kespwfds
一般會員


發表:1
回覆:3
積分:0
註冊:2004-10-25

發送簡訊給我
#6 引用回覆 回覆 發表時間:2004-10-25 16:50:43 IP:220.142.xxx.xxx 未訂閱
引言: 這得看你另外一個資料表有沒有拉DataSet了,如果有的話 Target.FieldByName('Field1').AsString := Source.FieldByName('Field1').Asstring; Target.FieldByName('Field2').AsString := Source.FieldByName('Field2').Asstring; . . . Target.FieldByName('Fieldn').AsString := Source.FieldByName('Fieldn').Asstring; 否則的話,也可以另外用TADODataSet去執行Insert的SQL語法。 Ian
謝謝大大的回答~ 您這個程式碼是不是把想存的那些欄位的資料存在另個資料庫的想要放的地方?有包括指定第幾筆資料了嗎?@@,小弟是個delphi的超級初心者=.="",所以很多地方不懂的@@"..
------
Delphi K.Top真是個好地方,很多大大會幫助我們這些嫩嫩的初心者~~ya
l630521
資深會員


發表:15
回覆:349
積分:372
註冊:2003-02-17

發送簡訊給我
#7 引用回覆 回覆 發表時間:2004-10-25 17:06:04 IP:220.228.xxx.xxx 未訂閱
沒有啦!我只是很簡單的把更新資料庫的方式寫上來! 1.首先你要先移到你要的記錄,有很多種方法,例如直接在DBGrid上點選,或者你有Key值可以用Locate的方式。 2.再來就看你的Target資料表是要用什麼方式,   如果是用DataSet的方式:   
  Target.Insert;
  Target.FieldByName('Field1').Value := Source.FieldByName('Field1').Value;
  Target.FieldByName('Field2').Value := Source.FieldByName('Field2').Value;
  Target.Post;
  
如果要用Insert的SQL語法的話:
  ADOQuery1.SQL.Clear;
  ADOQuery1.SQL.Add('Insert into Target (Field1, Field2) values (:Field1, :Field2)')
  ADOQuery1.Parameters.ParamByName('Field1').Value := Source.FieldByName('Field1').Value;
  ADOQuery1.Parameters.ParamByName('Field2').Value := Source.FieldByName('Field2').Value;
  ADOQuery1.ExecSQL;
  
方法有很多,看你的狀況需要用那一種。 Ian
kespwfds
一般會員


發表:1
回覆:3
積分:0
註冊:2004-10-25

發送簡訊給我
#8 引用回覆 回覆 發表時間:2004-10-25 19:55:59 IP:220.142.xxx.xxx 未訂閱
引言: 沒有啦!我只是很簡單的把更新資料庫的方式寫上來! 1.首先你要先移到你要的記錄,有很多種方法,例如直接在DBGrid上點選,或者你有Key值可以用Locate的方式。 2.再來就看你的Target資料表是要用什麼方式, 如果是用DataSet的方式:
  Target.Insert;
  Target.FieldByName('Field1').Value := Source.FieldByName('Field1').Value;
  Target.FieldByName('Field2').Value := Source.FieldByName('Field2').Value;
  Target.Post;
  
如果要用Insert的SQL語法的話:
  ADOQuery1.SQL.Clear;
  ADOQuery1.SQL.Add('Insert into Target (Field1, Field2) values (:Field1, :Field2)')
  ADOQuery1.Parameters.ParamByName('Field1').Value := Source.FieldByName('Field1').Value;
  ADOQuery1.Parameters.ParamByName('Field2').Value := Source.FieldByName('Field2').Value;
  ADOQuery1.ExecSQL;
  
方法有很多,看你的狀況需要用那一種。 Ian
恩恩~原來方法那麼多呀@@~很謝謝大大您唷~~回答我這麼多的問題, 問最後一個問題,剛去看了一些文章,有看到dbgrid能判斷目前滑鼠點到那一筆資料,那現在要用什麼方法(要怎麼寫@@"")來將點到的這一筆資料存到資料庫呢?@@"...阿哩阿多~~^^ Delphi K.Top真是個好地方,很多大大會幫助我們這些嫩嫩的初心者~~ya
------
Delphi K.Top真是個好地方,很多大大會幫助我們這些嫩嫩的初心者~~ya
l630521
資深會員


發表:15
回覆:349
積分:372
註冊:2003-02-17

發送簡訊給我
#9 引用回覆 回覆 發表時間:2004-10-26 09:08:41 IP:220.228.xxx.xxx 未訂閱
DBGrid游標在哪,你的DataSet的記錄就在哪, 你可以用 DBGrid1.DataSource.DataSet.FieldByName('Field1').Value來取得資料。 也可以用 Source.FieldByName('Field1').Value來取得資料。 Source是你的DataSet物件! Ian
系統時間:2024-06-29 5:09:46
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!