• Home
  • About
  • BestBloggingIdeas
  • DotNetLearningSource
  • FORUM
  • Joblinks
  • Latest News
  • Policy
  • POSTS
  • SimplySqlServer.Com && SimplyAspDotNet.Com
  • Sitemap

Join Ours Forum

Asp.Net,C#,Ajax,Sql server,silverlight,Javascript codes exambles articles,Programming exambles

RSS Feed
  • Bounty Huge Roll [Amazon Frustration-Free Packaging]
  • XML Introduction to XML VHS Video Training, 1 hr., 32 minutes.
  • The Basic Overview of Windows Mobile Development Asp.Net C#
  • Overview of Sql server extended properties Asp.Net C#
  • How to Use Sql Server Extended properties using visual studio Asp.Net C#
  • Adobe Dreamweaver Templates Accelerate Web Development
  • Top Tips for Web Design Projects
  • How to Achieve a Good Web Design Structure
  • To Use Or Not To Use Website Templates
  • Five Tips to a Successful Website
  • Top 10 Articles,


    Silverlight Datagrid Select Update Delete Insert Asp.Net C#

    Differences Similarities Benefits Between Typed Datasets and Untyped Datasets asp.net c#

    Linq to Sql Introduction Entities Ado.Net C# SqlClasses Attributes Linq Mapping

    Linq Programming/How Linq Works?/Linq Implementation In Asp.Net C# Ado.Net

    Performing Developing Using Investigating Asp.Net 2.0 Ajax Application Development Asp.Net C#

    Hosting/Install Wcf Services in a Windows Service Asp.Net C#

    Connecting Silverlight to Wcf Asp.Net C#

    Silverlight Data Grid Data Binding WCF Asp.Net C#

    Invoking/Accessing/Calling WCF Service Without Adding/Creating Proxy/Reference Asp.Net C#

    Performing Doing Creating Insert Update Delete sql data Using Linq Database Asp.Net C#

    Sql Cursor’s

    Posted by james on September 28, 2009 Leave a comment (0) Go to comments

    simply we can define,cursor is  a way of taking a set of data,
    and being able to interact with a single record at a time in that set.
    syntax,
    DECLARE <cursor name> CURSOR
    FOR <select statement>

    for ex,

    DECLARE @TableName varchar(255)
    DECLARE TableCursor CURSOR FOR
    SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES
    WHERE TABLE_TYPE = ‘BASE TABLE’

    OPEN TableCursor

    FETCH NEXT FROM TableCursor INTO @TableName

    WHILE @@FETCH_STATUS = 0
    BEGIN
    PRINT @TableName
    FETCH NEXT FROM TableCursor INTO @TableName
    END

    CLOSE TableCursor,

    Deallocate TableCursor,

    Cursor,s are classified into the following four types,
    •    Static
    •    Keyset-driven
    •    Dynamic
    •    Fast-forward-only
    Static Cursor’s:
    Simply in-time Cursor.We cannot database update using Static Cursor.
    USE Northwind
    /* Build the table that we’ll be playing with this time  */
    SELECT OrderID, CustomerID
    INTO CursorTable
    FROM Orders
    WHERE OrderID BETWEEN 10701 AND 10705

    – Declare our cursor
    DECLARE CursorTest CURSOR
    GLOBAL                      — So we can manipulate it outside the batch
    SCROLL                      — So we can scroll back and see the changes
    STATIC                      — This is what we’re testing this time
    FOR
    SELECT OrderID, CustomerID
    FROM CursorTable

    – Declare our two holding variables
    DECLARE @OrderID int
    DECLARE @CustomerID varchar(5)

    – Get the cursor open and the first record fetched
    OPEN CursorTest
    FETCH NEXT FROM CursorTest INTO @OrderID, @CustomerID

    – Now loop through them all
    WHILE @@FETCH_STATUS=0
    BEGIN
    PRINT CONVERT(varchar(5),@OrderID) + ‘   ‘ +  @CustomerID
    FETCH NEXT FROM CursorTest INTO @OrderID, @CustomerID
    END
    – Make a change. We’ll see in a bit that this won’t affect the cursor.
    UPDATE CursorTable
    SET CustomerID = ‘XXXXX’
    WHERE OrderID = 10703

    – Now look at the table to show that the update is really there.
    SELECT OrderID, CustomerID
    FROM CursorTable

    – Now go back to the top. We can do this since we have a scrollable cursor
    FETCH FIRST FROM CursorTest INTO @OrderID, @CustomerID

    – And loop through again.
    WHILE @@FETCH_STATUS = 0
    BEGIN
    PRINT CONVERT(varchar(5),@OrderID) + ‘   ‘ +  @CustomerID
    FETCH NEXT FROM CursorTest INTO @OrderID, @CustomerID
    END

    – Now it’s time to clean up after ourselves
    CLOSE CursorTest

    DEALLOCATE CursorTest

    DROP TABLE CursorTable
    Keyset-Driven Cursor’s:

    Keyset cursors can be used as the basis for a cursor that is going
    to perform updates to the data.

    USE Northwind
    /* Build the table that we’ll be playing with this time   */
    SELECT OrderID, CustomerID
    INTO CursorTable
    FROM Orders
    WHERE OrderID BETWEEN 10701 AND 10705
    – Now create a unique index on it in the form of a primary key
    ALTER TABLE CursorTable
    ADD CONSTRAINT PKCursor
    PRIMARY KEY (OrderID)

    /* The IDENTITY property was automatically brought over when
    ** we did our SELECT INTO, but we want to use our own OrderID
    ** value, so we’re going to turn IDENTITY_INSERT on so that we
    ** can override the identity value.
    */
    SET IDENTITY_INSERT CursorTable ON

    – Declare our cursor
    DECLARE CursorTest CURSOR
    GLOBAL                 — So we can manipulate it outside the batch
    SCROLL                 — We can scroll back to see if the changes are there
    KEYSET                 — This is what we’re testing this time
    FOR
    SELECT OrderID, CustomerID
    FROM CursorTable

    – Declare our two holding variables
    DECLARE @OrderID int
    DECLARE @CustomerID varchar(5)

    – Get the cursor open and the first record fetched
    OPEN CursorTest
    FETCH NEXT FROM CursorTest INTO @OrderID, @CustomerID

    – Now loop through them all
    WHILE @@FETCH_STATUS=0
    BEGIN
    PRINT CONVERT(varchar(5),@OrderID) + ‘ ‘ + @CustomerID
    FETCH NEXT FROM CursorTest INTO @OrderID, @CustomerID
    END

    – Make a change. We’ll see that it does affect the cursor this time.
    UPDATE CursorTable
    SET CustomerID = ‘XXXXX’
    WHERE OrderID = 10703

    – Now we’ll delete a record so we can see how to deal with that
    DELETE CursorTable
    WHERE OrderID = 10704

    – Now insert a record. We’ll see that the cursor is oblivious to it.
    INSERT INTO CursorTable
    (OrderID, CustomerID)
    VALUES
    (99999, ‘IIIII’)

    – Now look at the table to show that the update is really there.
    SELECT OrderID, CustomerID
    FROM CursorTable
    – Now go back to the top. We can do this since we have a scrollable cursor
    FETCH FIRST FROM CursorTest INTO @OrderID, @CustomerID

    /* And loop through again.
    ** This time, notice that we changed what we’re testing for.
    ** Since we have the possibility of rows being missing (deleted)
    ** before we get to the end of the actual cursor, we need to do
    ** a little bit more refined testing of the status of the cursor.
    */
    WHILE @@FETCH_STATUS != -1
    BEGIN
    IF @@FETCH_STATUS = -2
    BEGIN
    PRINT ‘  MISSING! It probably was deleted.’
    END
    ELSE
    BEGIN
    PRINT CONVERT(varchar(5),@OrderID) + ‘   ‘ +  @CustomerID
    END
    FETCH NEXT FROM CursorTest INTO @OrderID, @CustomerID
    END

    – Now it’s time to clean up after ourselves
    CLOSE CursorTest

    DEALLOCATE CursorTest

    DROP TABLE CursorTable

    Dynamic Cursor’s:

    Dynamically created cursor’s,the major difference between keyset and dynamic
    is DYNAMIC keyword.

    USE Northwind
    /* Build the table that we’ll be playing with this time  */
    SELECT OrderID, CustomerID
    INTO CursorTable
    FROM Orders
    WHERE OrderID BETWEEN 10701 AND 10705

    – Now create a unique index on it in the form of a primary key
    ALTER TABLE CursorTable
    ADD CONSTRAINT PKCursor
    PRIMARY KEY (OrderID)

    /* The IDENTITY property was automatically brought over when
    ** we did our SELECT INTO, but we want to use our own OrderID
    ** value, so we’re going to turn IDENTITY_INSERT on so that we
    ** can override the identity value.
    */
    SET IDENTITY_INSERT CursorTable ON

    – Declare our cursor
    DECLARE CursorTest CURSOR
    GLOBAL               — So we can manipulate it outside the batch
    SCROLL               — So we can scroll back and see if the changes are there
    DYNAMIC              — This is what we’re testing this time
    FOR
    SELECT OrderID, CustomerID
    FROM CursorTable

    – Declare our two holding variables
    DECLARE @OrderID      int
    DECLARE @CustomerID   varchar(5)
    – Get the cursor open and the first record fetched
    OPEN CursorTest
    FETCH NEXT FROM CursorTest INTO @OrderID, @CustomerID

    – Now loop through them all
    WHILE @@FETCH_STATUS=0
    BEGIN
    PRINT CONVERT(varchar(5),@OrderID) + ‘   ‘ +  @CustomerID
    FETCH NEXT FROM CursorTest INTO @OrderID, @CustomerID
    END

    – Make a change. We’ll see that it does affect the cursor this time.
    UPDATE CursorTable
    SET CustomerID = ‘XXXXX’
    WHERE OrderID = 10703

    – Now we’ll delete a record so we can see how to deal with that
    DELETE CursorTable
    WHERE OrderID = 10704

    – Now insert a record. We’ll see that the cursor is oblivious to it.
    INSERT INTO CursorTable
    (OrderID, CustomerID)
    VALUES
    (99999, ‘IIIII’)

    – Now look at the table to show that the update is really there.
    SELECT OrderID, CustomerID
    FROM CursorTable

    – Now go back to the top. We can do this since we have a scrollable cursor
    FETCH FIRST FROM CursorTest INTO @OrderID, @CustomerID

    /* And loop through again.
    ** This time, notice that we changed what we’re testing for.
    ** Since we have the possibility of rows being missing (deleted)
    ** before we get to the end of the actual cursor, we need to do
    ** a little bit more refined testing of the status of the cursor.
    */
    WHILE @@FETCH_STATUS != -1
    BEGIN
    IF @@FETCH_STATUS = -2
    BEGIN
    PRINT ‘  MISSING! It probably was deleted.’
    END
    ELSE
    BEGIN
    PRINT CONVERT(varchar(5),@OrderID) + ‘   ‘ +  @CustomerID
    END
    FETCH NEXT FROM CursorTest INTO @OrderID, @CustomerID
    END

    – Now it’s time to clean up after ourselves
    CLOSE CursorTest

    DEALLOCATE CursorTest

    DROP TABLE CursorTable

    Fast-Forward Cursor’s:

    Default Cursor,just you open the cursor, and do nothing else but deal with the data,
    move forward, and deallocate it.

    Hope,this helps,

    Happy Coding.

    SQL SERVER/ORACLE
    ← Document Object Model(DOM)
    How to Access Web Service Using HTTP-POST Method. →

    Learn Easily Using Video Tutorials


    How to choose the right Java IDE – explained Eclipse NetBeans BlueJ

    Developing/Creating/Performing/Configuring Java Applications Using Eclipse IDE

    Step By Step Guide for Download/Install Configure Eclipse IDE for Java

    Editing data with the GridView control Asp.Net C#

    Registering/Configuring Web Controls globally in web.config file asp.net c#

    Registering/Configuring Web Controls globally in web.config file asp.net c#

    Best way to prepare asp.net Interview - Success Stories

    Download Important Questions and PPT's:

    Sql Server Important Questions Online free download

    Dotnet Important Questions Online free download

    Exploring Linq to Sql Process Flow

    Learn how to perform silverlight programming

    Learn OOPs concepts in better and well manner

    Learn Ajax in better and well manner

    Comments are closed.

    Enter your email address:

    Delivered by FeedBurner

    • Recent Posts

      • Bounty Huge Roll [Amazon Frustration-Free Packaging]
      • XML Introduction to XML VHS Video Training, 1 hr., 32 minutes.
      • The Basic Overview of Windows Mobile Development Asp.Net C#
      • Overview of Sql server extended properties Asp.Net C#
      • How to Use Sql Server Extended properties using visual studio Asp.Net C#
    • Search by Tags!

      Application AspNet Basic between Black Bluetooth Build Business Collection Consultants Design Development Downloading effective Excel Experts Generics Implement Installing Interview Logic Management Microsoft Minutes Object Outlook Professional Programmer Programming Project Projects Questions Ready Select Server Services Silverlight Source Strings Studio Through using Visual Website Wordpress
    • Archives

      • August 2011
      • June 2011
      • May 2011
      • April 2011
      • March 2011
      • February 2011
      • December 2010
      • November 2010
      • October 2010
      • September 2010
      • August 2010
      • July 2010
      • June 2010
      • May 2010
      • April 2010
      • March 2010
      • February 2010
      • January 2010
      • December 2009
      • November 2009
      • October 2009
      • September 2009

    Copyright © 2012 NetProgrammingHelp.com

    Δ Top