2013-07-06 35 views
0

我有一個TSQLQuery組件,叫做qryUltimoProyectoCreado,下一個查詢:檢索和管理DB數據

select gen_id(GEN_PROYECTO_ID, 0) 
from rdb$database; 

查詢組件有一個數據集組件,叫做dsUltimoProyectoCreado。 現在,在我的代碼,我需要執行闕查詢(開放)和操作檢索的行:

DMConnect.qryUltimoProyectoCreado.Open; 
{ now ? } 

任何想法?即時通訊新手在德爾福。謝謝 !。

+0

你有意打算用step = 0調用gen_id()嗎?順便說一句,從FB 2.0開始,建議生成新值的方法是**從rdb $ database **中爲選擇下一個值[http://www.firebirdsql.org/refdocs/langrefupd20-genid.html](http:/ /www.firebirdsql.org/refdocs/langrefupd20-genid.html) – pf1957

回答

1

與查詢Fields物業剛工作:

DMConnect.qryUltimoProjyectoCread.Open; 
if not DMConnect.qryUltimoProjyectoCread.IsEmpty then 
    NewID := DMConnect.qryUltimoProjyectoCread.Fields[0].AsInteger; 

它的更好,如果你給你的欄(尤其是那些函數或存儲過程的結果),在SQL別名:

DMConnect.qryUltimoProjyectoCread.SQL.Text := 'select gen_id(GEN_PROYECTO_ID, 0)' + 
               ' as NewID from rdb$database;'; 
DMConnect.qryUltimoProjyectoCread.Open; 
if not DMConnect.qryUltimoProjyectoCread.IsEmpty then  
    MyNewID := DMConnect.qryUltimoProjyectoCread.FieldByName('NewID').AsInteger; 

上面鏈接的文檔頁面的底部有一些鏈接,顯示如何使用Delphi中的數據處理數據,您可能會發現它們很有用。

+0

優秀的作品! – ramiromd