请教:记录插入(Insert)的问题 |
答題得分者是:cashxin2002
|
lovelypp
初階會員 發表:122 回覆:111 積分:46 註冊:2003-02-19 發送簡訊給我 |
|
cashxin2002
版主 發表:231 回覆:2555 積分:1937 註冊:2003-03-28 發送簡訊給我 |
您好﹗ 一般來講﹐使用如下的SQL語法應是最快的﹕
Insert Into 資料表名稱 Select * From 訂單 Where 鍵值欄位名=第5筆記錄 但從您的問題描述來看﹐如果新增的資料錄所有欄位值和第5筆資料錄欄位值完全相同﹐那可能就沒有鍵位欄位的設定﹐所以實務中可以使用以下的方法﹕ 1. 先將資料錄指針移至第5筆資料錄﹐使用變數記錄下每個欄位的值﹒
Var MyColumn1, MyColumn2, MyColumn3 : String; //以上變數請宣告在implementation之前﹐這里假設三個變數皆為String形態 begin ADOTable1.First; ADOTable1.MoveBy(4); MyColumn1 := ADOTable1.FieldByName('欄位名1').AsString; MyColumn2 := ADOTable1.FieldByName('欄位名2').AsString; MyColumn3 := ADOTable1.FieldByName('欄位名3').AsString; end; //此處以三個欄位名為列﹐且欄位形態皆為String2. 再將資料錄指針移至第三筆﹐并Insert新的資料 begin ADOTable1.First; ADOTable1.MoveBy(2); ADOTable1.Insert; ADOTable1.FieldByName('欄位名1').AsString := MyColumn1; ADOTable1.FieldByName('欄位名2').AsString := MyColumn2; ADOTable1.FieldByName('欄位名3').AsString := MyColumn3; ADOTable1.Post; end;參考看看﹗ ===================== 努力,相信會獲得美麗! 忻晟 發表人 - cashxin2002 於 2004/03/03 11:25:17
------
忻晟 |
lovelypp
初階會員 發表:122 回覆:111 積分:46 註冊:2003-02-19 發送簡訊給我 |
|
lovelypp
初階會員 發表:122 回覆:111 積分:46 註冊:2003-02-19 發送簡訊給我 |
|
cashxin2002
版主 發表:231 回覆:2555 積分:1937 註冊:2003-03-28 發送簡訊給我 |
您好﹗ 您描述的不是供使用者輸入的鍵值欄位﹐而是Access提供的一個名為自動編號的欄位形態﹐在設計Access資料表時﹐即可在設計窗口添加欄位時指定此欄位形態為自動編號﹐這個欄位會自動以1累積﹐也就是說每次新增一筆資料錄時﹐即賦予其當前使用過的最大編號加上1做為其編號﹒ 但這種形態的欄位在資料刪除時并不會自動做維護﹐曾使用過的編號﹐即使是已經刪除﹐也不會再賦給新的資料錄﹒ 但可以使用Access中的壓縮及維護功能來解決這方面的問題﹐Access視窗中正常開啟需要維護的資料表﹐點擊[工具\資料庫公用程式\壓縮及維護資料庫...]﹐另外﹐也可在程式中Import JRO來處理同樣的事務﹐請參考如下連接﹕ 主題﹕用JRO壓縮ACCESS資料庫.MDB 作者﹕領航天使
http://delphi.ktop.com.tw/topic.php?TOPIC_ID=201 主題﹕如何用程式修護並壓縮Access資料檔 作者﹕Lee
http://delphi.ktop.com.tw/topic.php?TOPIC_ID=17920 參考看看﹗ =====================
努力,相信會獲得美麗!
忻晟
------
忻晟 |
lovelypp
初階會員 發表:122 回覆:111 積分:46 註冊:2003-02-19 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |