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 行...