Wednesday 20 March 2013

What is the difference between Scope_Identity(), Identity(), @@Identity??

Most of the developers get confused in these terms:

  1. @@identity always returns the last identity value created in the same session regardless of the table that produced the value, and regardless of the scope of the statement.
  2. scope_identity() returns the identity value created in the same session and the same scope.
  3. identity() is not used to get an identity value but instead is used to create an identity in select...into statement that is declaring a column in a table as an identity column.
Here the session means the database connection.

Here is an example:
CREATE TABLE ABC(
  ID INT IDENTITY(1,1),
  Name VARCHAR(100)
)

INSERT INTO ABC (Name) VALUES ('x')
SELECT SCOPE_IDENTITY(), @@IDENTITY

Note:
To avoid the potential problems associated with adding a trigger later on, always use SCOPE_IDENTITY() to return the identity of the recently added row in your T SQL Statement or Stored Procedure.

Tuesday 19 March 2013

How to make windows application to run on 32 bit and 64 bit

From your project in visual studio, follow the menu items as below:

Solution explorer  -->  Right click  -->  Properties (A new tab should open up)  --> Build tab
Setting configurations to 'Any CPU' ensures that your application will work on both 32 and 64bit computers.

What are the advantages using LINQ than stored procedure

There are a lot:
  1. Debugging - It is really very hard to debug the Stored procedure but as LINQ is part of .NET, you can use visual studio's debugger to debug the queries.
  2. Deployment - With stored procedures, we need to provide an additional script for stored procedures but with LINQ everything gets complied into single DLL hence deployment becomes easy.
  3. Type Safety - LINQ is type safe, so queries errors are type checked at compile time. It is really good to encounter an error when compiling rather than runtime exception!
  4. Built-in security - One reason I preferred stored procs before LINQ was that they forced the use of parameters, helping to reduce SQL injection attacks. LINQ to SQL already parameterizes input, which is just as secure.
  5. Reduction in work - Before LINQ, I spent a lot of time building DALs, but now my DataContext is the DAL. I've used OPFs too, but now I have LINQ that ships with multiple providers in the box and many other 3rd party providers, giving me the benefits from my previous points.
NOTE: If all you're doing is simple INSERT, UPDATE, and DELETE statements LINQ is the way to go (in my opinion) and all the optimization is done for you, for more complex work I would say to stick with stored procedures.
For more detailed info, refer this: What is the advantage of LINQ over stored procedures?

Using App_Data in connection string



The |DataDirectory| token would expand to an App_Data folder
under the root of a web application. 

Detecting what browser you are runnung using JQuery

The jQuery.browser() method has been deprecated since jQuery 1.3 and is removed in 1.9. If needed, it is available as part of the jQuery Migrate plugin.

For more info refer this: Changes of Note in jQuery 1.9

Recommend to use: http://modernizr.com/