Oracle數據庫有一個僞列ROWID,使用指令SELECT ROWID,A.* FROM TableA A可以看到此列的值。不同的Oracle版本,此列的類型不同,此列在使用DESC指令查看錶結構的時候看不到,是系統自動建立的,可以將其作爲一個索引值。在數據庫修改、刪除的時候使用此列速度很快。
在Delphi中使用ADOQuery打開如下的SQL語句:SELECT ROWID,A.F1 FROM TableA A。Open之後,發現此ADOQuery的FieldCount =1,也就是說僅有F1這個列,看不到ROWID這一列,給ROWID列增加別名也不行。於是改爲如下寫法:SELECT ROWID||‘’ AS ID,A.F1 FROM TableA A。此時,FieldCount=2,可以投過FieldByName('ID')或者Fields[0]來取得這個值了。
好奇怪的一個問題。