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

如何在 Insert 一筆資料後, 能得知剛 Insert 的資料的 index 值 ?

尚未結案
AirsLin
一般會員


發表:3
回覆:7
積分:2
註冊:2002-10-26

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-08-29 21:09:16 IP:66.124.xxx.xxx 未訂閱
如何在 Insert 一筆資料後, 能得知剛 Insert 的資料的 index 值 ? 該 index 值為自動編號 (AutoInc), 所以在 Insert 前並不能確定值 ! 使用 BCB6 Enterprise MS-SQL Server 要寫成 Trigger 嗎 ?
tech_state
版主


發表:44
回覆:638
積分:641
註冊:2003-02-10

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-08-30 00:07:10 IP:203.204.xxx.xxx 未訂閱
AirsLin, 您好 我所想到的方法是用一個Query元件來查詢,希望沒有誤會您的意思。 < class="code"> Query1->Close(); Query1->SQL->Clear(); Query1->SQL->Text = "select max(Field) as maxvalue from TableName "; Query1->Open(); ShowMessage(Query1->FieldByName("maxvalue")->AsString); // Field為自動編號的欄位,如您的index,TableName為您所使用的Table名稱 ================================= 涵養怒中氣。謹防順口言。留心忙裡錯。珍惜有時錢。 是非終日有,不聽自然無 天下本無事,庸人自擾之 發表人 - tech_state 於 2003/08/30 00:10:36
kuochih
一般會員


發表:2
回覆:8
積分:2
註冊:2003-07-17

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-08-30 00:38:41 IP:140.115.xxx.xxx 未訂閱
hi,    請問題目的原意 是否如下所描述    index值為int 假設有10個欄位 分別是1-10 然後insert data至不定的欄位中 現在想知道的是 insert data後 該筆data所在index值為多少?? 是這樣子的意思嗎??    不好意思  不是很清楚題目的原意 所以版大的解答也跟著看不懂 所以才想了解一下完整的題意的 多謝回答。
AirsLin
一般會員


發表:3
回覆:7
積分:2
註冊:2002-10-26

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-08-30 12:34:57 IP:66.124.xxx.xxx 未訂閱
是的, 如果 INDEX 是設為 AutoInc, 在 insert 後, 如何知道剛剛加的那一筆資料的 index 是多少呢? 我用 BCB6 TQuery component Microsoft SQL 2000 Server, 不知要如何做 ?
AirsLin
一般會員


發表:3
回覆:7
積分:2
註冊:2002-10-26

發送簡訊給我
#5 引用回覆 回覆 發表時間:2003-08-30 12:40:02 IP:66.124.xxx.xxx 未訂閱
謝謝你的回答 ! 因為是在多人環境下作業, 使用 MAX(Idx) 這樣可能會抓錯別人輸入的值耶... 我查到可以用 Query->SQL->Add("Insert ....(略)..."); Query->SQL->Add("SELECT @@IDENTITY AS XXX ;"); Query->ExecSQL(); Idx = Query->FieldByName("XXX")->AsInteger; 但, 執行到上面一行會出現錯誤, 找不到 XXX 欄位 ? WHY ?
timhuang
尊榮會員


發表:78
回覆:1815
積分:1608
註冊:2002-07-15

發送簡訊給我
#6 引用回覆 回覆 發表時間:2003-08-31 21:46:36 IP:61.62.xxx.xxx 未訂閱
hi, 記得要取回資料時要使用 Open() Method 不要用 ExecSQL(), 這是用在指令型的 command 下, 如 insert, delete, update 等... 關於你的問題, 建議你的 command 這樣下:    
Query->SQL->Clear();
Query->SQL->Add("Set Nocount On;");
Query->SQL->Add("Insert ....(略)...;");
Query->SQL->Add("SELECT @@IDENTITY AS XXX;");
Query->Open();
Idx = Query->FieldByName("XXX")->AsInteger;
系統時間:2024-05-07 5:31:49
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!