亚洲韩日午夜视频,欧美日韩在线精品一区二区三区,韩国超清无码一区二区三区,亚洲国产成人影院播放,久草新在线,在线看片AV色

您好,歡迎來到思海網絡,我們將竭誠為您提供優質的服務! 誠征網絡推廣 | 網站備案 | 幫助中心 | 軟件下載 | 購買流程 | 付款方式 | 聯系我們 [ 會員登錄/注冊 ]
促銷推廣
客服中心
業務咨詢
有事點擊這里…  531199185
有事點擊這里…  61352289
點擊這里給我發消息  81721488
有事點擊這里…  376585780
有事點擊這里…  872642803
有事點擊這里…  459248018
有事點擊這里…  61352288
有事點擊這里…  380791050
技術支持
有事點擊這里…  714236853
有事點擊這里…  719304487
有事點擊這里…  1208894568
有事點擊這里…  61352289
在線客服
有事點擊這里…  531199185
有事點擊這里…  61352288
有事點擊這里…  983054746
有事點擊這里…  893984210
當前位置:首頁 >> 技術文章 >> 文章瀏覽
技術文章

微軟SQL Server支持的四種游標類型

添加時間:2012-7-3 22:05:48  添加: 思海網絡 
游標總是與一條SQL 選擇語句相關聯因為游標由結果集(可以是零條、一條或由相關的選擇語句檢索出的多條記錄)和結果集中指向特定記錄的游標位置組成。當決定對結果集進行處理時,必須聲明一個指向該結果集的游標。Microsoft SQL Server Compact 3.5 (SQL Server Compact 3.5) 游標與 SQL Server 中使用的游標類似。本節將給大家詳細的介紹它們。

  系列文章:

  游標腳本性能問題詳解之相關知識講解篇

  游標腳本性能問題詳解之游標分類特點篇

  微軟SQL Server數據庫的兩種請求游標

  游標腳本性能問題詳解之解決方案篇

  微軟SQL Server支持的三種游標實現

  SQL Server Compact 3.5 支持下列游標類型:

        1、 基表

        2、 靜態

        3、 只進

        4、 只進/只讀

        5、 鍵集驅動

  一、基表游標

  基表游標是可用的最低級別的游標。 這些游標直接在存儲引擎上工作,是所有支持的游標類型中速度最快的游標。 基表游標可以最低開銷向前或向后滾動,并且可以更新。

  您還可以直接在索引上打開游標。 此類游標支持索引,以便對表中的行進行排序、允許查找特定值以及基于索引中的值的范圍對行進行限制。

  基表游標具有動態成員身份。 這意味著,在同一個表上打開的兩個游標可以立即看見對數據的插入、刪除和更改(假定它們兩個都在同一事務作用范圍內)。 由于可以更新基表游標,因此客戶端可以使用此類游標來更改基本數據。

  基表游標無法表示查詢結果。 查詢結果(例如 SELECT * FROM tablename)無法通過基表游標返回。 而是使用支持的查詢結果游標返回結果。

  下面的示例說明如何使用 ADO .NET 獲取基表游標:

  //Base Table Cursor

  cmd.CommandText
= "tablename";

  cmd.CommandType
= CommandType.TableDirect;

  SqlCeResultSet rs
= cmd.ExecuteResultSet(ResultSetOptions.Scrollable | ResultSetOptions.Updatable);

  下面的示例說明如何使用 ADO .NET 獲取索引游標:

  cmd.CommandText = "tablename";

  cmd.IndexName
= "indexname";

  cmd.CommandType
= CommandType.TableDirect;

  SqlCeResultSet rs
= cmd.ExecuteResultSet(ResultSetOptions.Scrollable | ResultSetOptions.Updatable);

  二、靜態游標

  靜態游標(在以前的 SQL Server Compact 3.5 版本中稱為可滾動查詢游標)可以創建和存儲結果集的完整副本。 當用戶顯式請求檢索的長整型值數據時例外。 只有在需要時才填充此結果集。 這與 SQL Server 不同,后者在創建游標時就會填充結果集。 靜態游標支持向后滾動和向前滾動,但不支持更新。 靜態游標無法看見外部對不敏感的數據所做的更改。 在游標的生存周期內將緩存查詢結果。 盡管靜態游標比只進游標功能更強,但靜態游標速度較慢,并且會使用更多的內存。 建議只有在需要滾動并且鍵集游標不合適時再考慮使用靜態游標。

  下面的示例說明如何使用 ADO.NET 獲取靜態游標:

  cmd.CommandText = "Select * from tablename";

  SqlCeResultSet rs
= cmd.ExecuteResultSet(ResultSetOptions.Scrollable | ResultSetOptions.Insensitive);

  三、只進游標

  只進游標是可更新的速度最快的游標,但不支持滾動。 它只支持從游標頭至游標尾順序提取行。 在提取行之前,無法從數據庫中檢索這些行。 從游標提取行時,由當前用戶創建或由其他用戶提交并會影響結果集中的行的所有 INSERT、UPDATE 和 DELETE 語句的效果均可見。 由于游標無法向后滾動,因此在行被提取之后,將無法通過使用游標看見在數據庫中對行所做的更改。

  只進游標和只進/只讀游標是基于查詢的速度最快的游標。 它們應當用在優先考慮速度和內存占用量的方案中。

  下面的示例說明如何使用 ADO .NET 獲取只進游標:

  cmd.CommandText = "Select * from tablename";

  SqlCeResultSet rs
= cmd.ExecuteResultSet(ResultSetOptions.Updatable);

  四、只進/只讀游標

  只進/只讀游標(在以前的 SQL Server Compact 3.5 版本中稱為只進游標)是最快的游標,但無法進行更新。

  下面的示例說明如何使用 ADO.NET 獲取只進/只讀游標:

  cmd.CommandText = "Select * from tablename";

  SqlCeResultSet rs
= cmd.ExecuteResultSet(ResultSetOptions.None);

  注意 不能在只返回只讀列的查詢上創建只讀游標,因為內部的所有 SQL Server Compact 3.5 游標都是可更新的。SQL Server Compact 3.5 無法更新在 SqlCeResultSet 中返回的只讀列。 因此,它將失敗,并返回錯誤“由于不存在可更新列,因此無法生成用于查詢的可更新游標”。

  五、鍵集驅動游標

  SQL Server Compact 3.5 中的鍵集驅動游標是可以進行更新的可滾動游標。 鍵集驅動游標由一組稱為鍵集的物理標識符來控制。 鍵集基于在打開游標時對 SELECT 語句驗證合格的所有行。 在打開游標時將在臨時表中生成鍵集。 使用鍵集驅動游標,將在執行查詢時確定成員身份。

  SQL Server Compact 3.5 中的鍵集驅動游標與 SQL Server 中的鍵集驅動游標有細微的差別。 在 SQL Server 中,鍵集驅動游標使用一組唯一標識符作為鍵集中的鍵。 在 SQL Server Compact 3.5 中,鍵是表示值在表中的邏輯存儲位置的書簽。 它們不是唯一標識符。

  盡管對許多更改敏感,但鍵集驅動游標不如其他游標敏感。 例如,盡管在游標內的插入將在結束時可以看見,但無法看見在游標外的插入。 在這種情況下,建議您關閉并重新打開游標,或使用一個只進游標。

  由于 SQL Server Compact 3.5 使用書簽來定義鍵集,因此通過使用游標,對鍵集中所包括行的數據值所做的所有更改都是可見的。 對于在游標內所做的更改和在游標外所做的更改,情況都是這樣的。

  無論是在游標內還是在游標外,在鍵集游標中所做的任何刪除操作都將導致在試圖提取行時報告該行已被刪除。

  下面的示例說明如何使用 ADO .NET 獲取鍵集驅動游標:

  cmd.CommandText = "Select * from tablename";

  SqlCeResultSet rs
= cmd.ExecuteResultSet(ResultSetOptions.Scrollable | ResultSetOptions.Updatable);

  使用聯接

  如果用來打開鍵集驅動游標的查詢包含聯接的列,則這些列不可更新。 用戶可以向這些列中插入新值,但不支持更新。

  如果鍵集被用來填充用戶可更新的控件(如 DataGrid 對象),則用戶可能會試圖更新控件中的值,此時更新將失敗。 如果要開發的應用程序將使用 DataGrid 來顯示聯接的列數據,請確保在 DataGrid 中將聯接的列設置為只讀。

關鍵字:服務器、游標、數據、控件

分享到:

頂部 】 【 關閉
版權所有:佛山思海電腦網絡有限公司 ©1998-2024 All Rights Reserved.
聯系電話:(0757)22630313、22633833
中華人民共和國增值電信業務經營許可證: 粵B1.B2-20030321 備案號:粵B2-20030321-1
網站公安備案編號:44060602000007 交互式欄目專項備案編號:200303DD003  
察察 工商 網安 舉報有獎  警警  手機打開網站