使用DBMS APIs 使用行集和游標 2

2021-08-24 17:14:48 字數 1382 閱讀 2243

s60平台:使用dbms apis —使用行集和游標(2) 

3.2 游標

乙個游標可以對行集中的所有有效行進行導航。有效行依賴於行集是如何生成的,特別是行集是否是使用評估窗的sql檢視

3.2.1 游標狀態

在大多數普通情況下,游標儲存來自行集的,從屬於行的值。然而,游標還需要儲存其他一些狀態。

乙個游標可以儲存「起始」或「結束」狀態。起初,游標進行重置,遊標定位於開始端。其初始位置指向第一行的前一行,結束位置指向最後一行的下一行。對於乙個空集來說,

其仍有指向資料集尾的游標,在這種情況下,從起始位置對第一行進行導航和對最後一行進行導航是等價的,游標在起始狀態時定位。在對集合的最後一行進行導航時,執行過程

是相似的。

當對一行進行更新或插入操作時,游標有乙個狀態阻止導航,直到更新或插入操作完成。

刪除當前行後,游標不發生變化並儲存由於刪除操作所而生成的無效值。當導航至下一行,前一行或特殊行時,游標將移動至指定行或者在還有行的情況下,指向起始或結束位置

,刪除行集值時,行集中的值將被從行集中移除。

3.3 通過索引獲得資料

可以通過使用sql檢視或rdbtable行集物件,生成乙個索引來獲取資料。

rdbtable類提供了乙個簡單的seekl方法來快速查詢行。其使用tdbseekkey來獲取當前存在的第一行值。當使用已知唯一索引鍵快速獲得一行值時,seekl方法非常有效。若需要更

多複雜的查詢操作,sql檢視與rdbrowset基類可以提供豐富的解決辦法。

下列**使用rdbtable和乙個索引項來查詢行的首次匹配。索引在2.3.3節定義,「索引鍵。」

..._lit(kbookstable, "books");

_lit(kbooksindexname,"booksindex");

...private: // 資料成員

rdbstoredatabase ibookdb;

...void cbookdb::getabookfastl(const tdesc& atitle, tdes& aresult)

else

...

// 將表從清潔棧中彈出,將清潔棧關閉

cleanupstack::popanddestroy();

索引資料型別必須匹配目標型別,即tint匹配colintnn,等等。乙個tdbseekkey物件使用需求匹配值(atitle)索引來建立。舉個例子,有乙個已知索引,但其在查詢表時,必須以

下列格式使用才行:

cdbnames* idxs = ibookdb.indexnamesl(kbookstable);

在試圖查詢表前,為表設定索引是非常重要的。最終,seekl()嘗試去匹配值。如果鍵值被匹配,那麼游標則被設定到指定位置。乙個後續方法getl()將獲得資料以備進一步操作。

使用Filebeat和Logstash集中歸檔日誌

方 案 注釋 由於logstash無法處理輸出到檔案亂序的問題,可通過不同的檔案使用不同的logstash 或者直接寫入es 不存在亂序問題 通過flink輸出到檔案 部 署系統環境 filebeat配置 etc filebeat filebeat.yml filebeat.prospectors ...

使用ROWID查詢和刪除重複行

sql create table lunar 2c1 char 4 3c2 varchar2 20 4 5 表已建立。sql insert into lunar values 1111 1111 已建立1 行。sql insert into lunar values 1112 1111 已建立1 行...

使用ROWID查詢和刪除重複行

sql create table lunar 2c1 char 4 3c2 varchar2 20 4 5 表已建立。sql insert into lunar values 1111 1111 已建立1 行。sql insert into lunar values 1112 1111 已建立1 行...