2010-07-15 47 views
1

我正在研究將使用ADO記錄集和Oracle數據庫以傳統ASP編寫的應用程序移植到PHP5和OCI8的可能性。我們有大量的存儲過程和查詢綁定變量的性能。是否有用於ADO MoveFirst和EOF,BOF的OCI8替代品?

我的問題是,我們已經從使用ADO類,EOF和BOF指標以及MoveFirst,MoveNext和MovePrevious變得懶惰。

我在OCI模塊中找不到任何類似的功能。有沒有希望?

回答

0

這不在我的專業領域,但我認爲ADO之外的等價功能是將數據集檢索到數組中,然後使用標準數組導航技術,而不是數據庫API特有的功能。


如果你正在處理的足夠大,你不希望加載整個事情在同一時間的數據集,你應該嘗試找到一種方法來縮小結果你之前在查詢中設置開始瀏覽結果。例如,如果您發現自己正在加載結果集,那麼只要到最後一行,就很容易讓查詢返回最後一行。如果您發現自己檢索了一個結果集,然後對特定行(或一組行)進行循環(或過濾),我想您會發現讓Oracle爲您做這件事將會顯示出更好的性能。

您需要使用數組與Oracle進行此類導航的原因是,Oracle遊標始終是僅向前的(而使用ADO的同時也有動態,鍵集和靜態遊標)。如果您確實需要能夠瀏覽整個大型結果集,則將整個內容加載到數組中是您唯一的選擇。

+0

數組方法適用於我們的一些較小的數據集,但我們確實有一些可能的大數據集,我將不得不找出處理導航的另一種方法。 – mggates 2010-07-15 18:18:11

+0

他們大多選擇記錄集,然後通過它並在每行上執行操作。原來他們只需要EOF,BOF和MoveNext仿真。 據我瞭解,自9i以來,Oracle支持動態遊標,但OCI8接口尚未更新以支持它們。 仍然要感謝你的建議,以及我在其他論壇上發現的一些建議,我有一個小的'RecordSet'類,它爲我提供了其他程序員所需的行爲。 – mggates 2010-07-19 18:54:37

相關問題