Monday, January 31, 2011

An in depth discussion of JavaScript Arrays - Working with two dimensional arrays: discussion

Within the code in the previous section, I mainly created a simple button (which is identified as “ButtonShow”). The button is defined with an “onclick” event which calls a JavaScript function “ButtonShow_onclick”, which is defined as follows:

function ButtonShow_onclick() {
Show();
}

The above function simply calls another JavaScript function named “Show.” The function “Show” is defined as follows:

function Show()
{
var ITArray = new Array(2300, 3105, 2909, 4800);
var ProductionArray = new Array(1800, 1940, 2470, 4350);
var ResearchArray = new Array(900, 1200, 1923, 3810);
var salaryArray = new Array(ITArray, ProductionArray, ResearchArray);

for (var i = 0; i < salaryArray.length; i++) {
for (var j = 0; j < salaryArray[i].length; j++) {
document.write(salaryArray[i][j] + "\t");
}
document.write("
")
}
}

Before starting this discussion, we need to understand what we are creating (in memory) from the above code. Let me provide you a logical view for the array (“salaryArray”) in the above code. Consider the following figure (Fig 01):

Just consider the above figure as a small part of memory identified by “salaryArray.” All the black numbers correspond to values. All the reds are access notations (the positions) for the values given in black. Every access notation is a combination of a row index (in blue) and a column index (in green).

We are trying to create three single dimensional arrays as part of the main array, and thus we describe the main array as a “two dimensional” array (which is very similar to the concept of matrices in mathematics).

According to the above code, the three single dimensional arrays (or rows) are “ITArray”, “ProductionArray” and “ResearchArray. All of them have their own values (but the number of values in all of them is generally the same). We created a main array named “salaryArray” which contains the three arrays in the form of a list (thus forming a table type of view).

Finally, we retrieve and display all the values in the “salaryArray” with the following nested loop:

for (var i = 0; i < salaryArray.length; i++) {
for (var j = 0; j < salaryArray[i].length; j++) {
document.write(salaryArray[i][j] + "\t");
}
document.write("
")
}

With the above code fragment, the variable “i” corresponds to the “row index” and the variable “j” corresponds to the “column index.”

Thursday, January 27, 2011

Get Last Executed Query with Time

Using below query you can easily trace the query that are executed earlier..


Select dmStats.last_execution_time as 'Last Executed Time',dmText.text as 'Executed Query' from sys.dm_exec_query_stats as dmStats Cross apply sys.dm_exec_sql_text(dmStats.sql_handle) as dmText Order By dmStats.last_execution_time desc

Monday, January 24, 2011

SQL Split Function


This SQL Split Function is use to SPLIT a sentences based on the Delimeter.
Delimeter is a string character used to identify substring limits.

Below is Split Function in SQL
DECLARE @NextString NVARCHAR(40)
DECLARE @Pos INT
DECLARE @NextPos INT
DECLARE @String NVARCHAR(40)
DECLARE @Delimiter NVARCHAR(40)

SET @String ='SQL,TUTORIALS'
SET @Delimiter = ','
SET @String = @String + @Delimiter
SET @Pos = charindex(@Delimiter,@String)

WHILE (@pos <> 0)
BEGIN
SET @NextString = substring(@String,1,@Pos - 1)
SELECT @NextString -- Show Results
SET @String = substring(@String,@pos+1,len(@String))
SET @pos = charindex(@Delimiter,@String)
END


Result
- SQL
- TUTORIALS

* Copy blue color Sql split function with change @String variable to test the result in your query analyzer.



Unable to connect to asp.net development server


I got this error after updating Microsoft Visual Studio 2008 Service Pack 1 (which took much longer than expected - close to two hours):

WebDev.WebServer.exe has stopped working
Unable to connect to the ASP.NET Development Server

As usual, this appeared to be a problem many people had, under many different scenarios, with many different solutions. The following solution is the solution that worked for me:

Delete the web project from the solution, rename the folder where the website is stored and then re-add the project to the solution as an existing website.

This is fine on my local laptop, but would probably be a bit more disconcerting in Visual Source Safe.

So my best guess is Visual Studio stores information about a web site somewhere.  If you don't perform the folder rename, when you add the web site back in you'll see the original, dynamic port settings.  It appears renaming forces a new port.

I don't know where this information is stored.  I can't seem to find anything in the registry, and deleting the temporary asp.net files didn't have any affect.

Although renaming the folder worked, I also did this:

The host file at %\Windows\System32\drivers\etc\hosts may have an incorrect entry. This line...

::1 localhost

was changed to...

:::1 localhost

That's three colons - not two.

I didn't experiment any further and have just moved on.


Sunday, January 2, 2011

Set Class From Javascript


//change the tab class style
var browser=navigator.appName;
var classtyp;
if(browser=='Microsoft Internet Explorer')
{
classtyp = "className";
}
else
{
classtyp = "class";
}

if (val=='new')
{
document.getElementById("liUpcoming").setAttribute(classtyp, "selectednews");
document.getElementById("liPast").setAttribute(classtyp, "");
}