Saturday, 10 August 2013

How to Restart the PC Using QTP

Use WMI to restart PC Dim OpSysSet Set OpSysSet = GetObject("winmgmts:{(Shutdown)}//./root/cimv2").ExecQuery("select * from   Win32_OperatingSystem where Primary=true") for each OpSys in OpSysSet   OpSys.Reboot()

Friday, 9 August 2013

What is Data Dictionary

Data dictionary is a read-only set of tables that provides information about the database. A data
dictionary contains:
– The definitions of all schema objects in the database (tables, views, indexes, clusters,
synonyms,
sequences, procedures, functions, packages, triggers, and so on)
– How much space has been allocated for, and is currently used by, the schema objects
– Default values for columns
– Integrity constraint information
– The names of Oracle users
– Privileges and roles each user has been granted
– Auditing information, such as who has accessed or updated various schema objects
– Other general database information
The data dictionary is structured in tables and views, just like other database data.
All the data dictionary tables and views for a given database are stored in that
database’s SYSTEM tablespace. Not only is the data dictionary central to every Oracle database, it is an importanttool for all users, from end users to application designers and database
administrators. Use SQL statements to access the data dictionary. Because the data dictionary is read only, you can issue only queries (SELECT statements) against it’s tables and views.
Structure of the Data Dictionary
The data dictionary consists of the following:
Base Tables stores information about the associated database. Only Oracle should write to and read these tables. Users rarely access them directly because they are normalized, and most of the data is stored in a cryptic format.
User-Accessible Views – The views that summarize and display the information stored in the base tables of the data dictionary. These views decode the base table data into useful information, such as user or table names, using joins and WHERE clauses to simplify the
information. Most users are given access to the views rather than the base tables.
SYS, Owner of the Data Dictionary The Oracle user SYS owns all base tables and user-accessible views of the data dictionary. No Oracle user should ever alter (UPDATE, DELETE, or INSERT) any rows or schema objects contained in the SYS schema, because such activity can
compromise data integrity. The security administrator must keep strict control of this central account.
How the Data Dictionary Is Used – The data dictionary has three primary uses:
– Oracle accesses the data dictionary to find information about users, schema objects, and
storage structures.
– Oracle modifies the data dictionary every time that a data definition language (DDL) statement
is issued.
- Any Oracle user can use the data dictionary as a read-only reference for information about the
database.

What is Array

Arrays
An array is a series of elements of the same type placed in contiguous memory locations that can be individually referenced by adding an index to a unique identifier. That means that, for example, we can store 5 values of type int in an array without having to declare 5 different variables, each one with a different identifier. Instead of that, using an array we can store 5 different values of the
same type, int for example, with a unique identifier. For example, an array to contain 5 integer values of type int called billy could be represented like this: where each blank panel represents an element of the array, that in this case are integer values of type int. These elements are numbered from 0 to 4 since in arrays the first index is always 0, independently of its length.
Like a regular variable, an array must be declared before it is used. A typical declaration for an array in C++ is:
type name [elements];
where type is a valid type (like int, float…), name is a valid identifier and the elements field (which is always enclosed in square brackets []), specifies how many of these elements the array has to contain. Therefore, in order to declare an array called billy as the one shown in the above diagram it is as simple as:
int billy [5];
NOTE: The elements field within brackets [] which represents the number of elements the array is going to hold, must be a constant value, since arrays are blocks of non-dynamic memory whose size must be determined before execution. In order to create arrays with a variable length dynamic memory is needed, which is explained later in these tutorials.
Initializing arrays.
When declaring a regular array of local scope (within a function, for example), if we do not specify otherwise, its elements will not be initialized to any value by default, so their content will be undetermined until we store some value in them. The elements of global and static arrays, on the other hand, are automatically initialized with their default values, which for all fundamental types this means they are filled with zeros. In both cases, local and global, when we declare an array, we have the possibility to assign initial values to each one of its elements by enclosing the values in braces { }. For example:
int billy [5] = { 16, 2, 77, 40, 12071 };
This declaration would have created an array like this:
The amount of values between braces { } must not be larger than the number of elements that we declare for the array between square brackets [ ]. For example, in the example of array billy we have declared that it has 5 elements and in the list of initial values within braces { } we have specified 5 values, one for each element. When an initialization of values is provided for an array, C++ allows the possibility of leaving the square brackets empty [ ]. In this case, the compiler will assume a size for the array that matches the number of values included
between braces { }:
int billy [] = { 16, 2, 77, 40, 12071 };
After this declaration, array billy would be 5 ints long, since we have provided 5 initialization values.
Accessing the values of an array. In any point of a program in which an array is visible, we can access the value of any of its elements individually as if it was a normal variable, thus being able to both read and modify its value. The format is as simple as:
name[index]
For example, to store the value 75 in the third element of billy, we could write the following statement:
billy[2] = 75;
and, for example, to pass the value of the third element of billy to a variable called a, we could write:
a = billy[2];
Therefore, the expression billy[2] is for all purposes like a variable of type int. Notice that the third element of billy is specified billy[2], since the first one is billy[0], the second one is billy[1], and therefore, the third one is billy[2]. By this same reason, its last element is billy[4]. Therefore, if
we write billy[5], we would be accessing the sixth element of billy and therefore exceeding the size of the array. In C++ it is syntactically correct to exceed the valid range of indices for an array. This can create problems, since accessing out-of-range elements do not cause compilation errors but can cause runtime errors. The reason why this is allowed will be seen further ahead when we begin to use pointers. At this point it is important to be able to clearly distinguish between the two uses that brackets [ ] have related to arrays. They perform two different tasks: one is to specify the size of arrays when they are declared; and the second one is to specify indices for concrete array elements. Do not confuse these two possible uses of brackets [] with arrays.
int billy[5]; // declaration of a new array
billy[2] = 75; // access to an element of the array.
If you read carefully, you will see that a type specifier always precedes a variable or array declaration, while it never precedes an access. Some other valid operations with arrays:
billy[0] = a;
billy[a] = 75;
b = billy [a+2];
billy[billy[a]] = billy[2] + 5;
// arrays example
#include
using namespace std;
int billy [] = {16, 2, 77, 40, 12071};
int n, result=0;
int main ()
{
for ( n=0 ; n<5 br="" n="">{
result += billy[n];
}
cout << result;
return 0;
}
12206
Multidimensional arrays
Multidimensional arrays can be described as “arrays of arrays”. For example, a bidimensional array can be imagined as a bidimensional table made of elements, all of them of a same uniform data type. jimmy represents a bidimensional array of 3 per 5 elements of type int. The way to declare this array in C++ would be:
int jimmy [3][5];
and, for example, the way to reference the second element vertically and fourth horizontally in an expression would be:
jimmy[1][3]
Multidimensional arrays are not limited to two indices (i.e., two dimensions). They can contain as many indices as needed. But be careful! The amount of memory needed for an array rapidly increases with each dimension. For example:
char century [100][365][24][60][60];
declares an array with a char element for each second in a century, that is more than 3 billion chars. So this declaration would consume more than 3 gigabytes of memory!
Multidimensional arrays are just an abstraction for programmers, since we can obtain the same results with a simple array just by putting a factor between its indices:
int jimmy [3][5]; // is equivalent to
int jimmy [15]; // (3 * 5 = 15)
With the only difference that with multidimensional arrays the compiler remembers the depth of each imaginary dimension for us. Take as example these two pieces of code, with both exactly the same result. One uses a bidimensional array and the other one uses a simple array:
multidimensional array pseudo-multidimensional array
#define WIDTH 5
#define HEIGHT 3
int jimmy [HEIGHT][WIDTH];
int n,m;
int main ()
{
for (n=0;nfor (m=0;m{
jimmy[n][m]=(n+1)*(m+1);
}
return 0;
}
#define WIDTH 5
#define HEIGHT 3
int jimmy [HEIGHT * WIDTH];
int n,m;
int main ()
{
for (n=0;nfor (m=0;m{
jimmy[n*WIDTH+m]=(n+1)*(m+1);
}
return 0;
}
None of the two source codes above produce any output on the screen, but both assign values to the memory block called jimmy in the following way:
We have used “defined constants” (#define) to simplify possible future modifications of the program. For example, in case that we decided to enlarge the array to a height of 4 instead of 3 it could be done simply by changing the line:
#define HEIGHT 3
to:
#define HEIGHT 4
with no need to make any other modifications to the program.
Arrays as parameters At some moment we may need to pass an array to a function as a parameter. In C++ it is not possible to pass a complete block of memory by value as a parameter to a function, but we are allowed to pass its address. In practice this has almost the same effect and it is a much faster and more efficient operation. In order to accept arrays as parameters the only thing that we have to do when declaring the function is to specify in its parameters the element type of the array, an identifier and a pair of void brackets []. For example, the following function:
void procedure (int arg[])
accepts a parameter of type “array of int” called arg. In order to pass to this function an array declared as:
int myarray [40];
it would be enough to write a call like this:
procedure (myarray);
Here you have a complete example:
// arrays as parameters
#include
using namespace std;
void printarray (int arg[], int length) {
for (int n=0; ncout << arg[n] << " ";
cout << "\n";
}
int main ()
{
int firstarray[] = {5, 10, 15};
int secondarray[] = {2, 4, 6, 8, 10};
printarray (firstarray,3);
printarray (secondarray,5);
return 0;
}
5 10 15
2 4 6 8 10
As you can see, the first parameter (int arg[]) accepts any array whose elements are of type int, whatever its length. For that reason we have included a second parameter that tells the function the length of each array that we pass to it as its first parameter. This allows the for loop that prints out the array to know the range to iterate in the passed array without going out of range. In a function declaration it is also possible to include multidimensional arrays. The format for a tridimensional array parameter is:
base_type[][depth][depth]
for example, a function with a multidimensional array as argument could be:
void procedure (int myarray[][3][4])
Notice that the first brackets [] are left blank while the following ones are not. This is so because the compiler must be able to determine within the function which is the depth of each additional dimension. Arrays, both simple or multidimensional, passed as function parameters are a quite common source of errors for novice programmers.

Mysql Database Backup and Restore Commands

Creating database backup:
Change directory to a backup directory you want.
1. mysqldump -u root testdb > testdb_bckup.sql
Note – testdb is database name which back up has to be taken. testdb_bckup is saved database name. root is user having privilege to take back up.
Restoring Database:
1. Move the sql file to the server into a specific directory. Say /usr/src/local
2. Change directory to the one created in step 1 (/usr/src/local) using cd command.
3. Go to mysql prompt using “mysql” command.
4. drop existing database using “drop database test;”
5. Create new database using “create database test;”
6. Restore db using “source sql_file_name.sql;” command.

How to Write Shell Script

Following steps are required to write shell script:
(1) Use any editor like vi to write shell script.
(2) After writing shell script set execute permission for your script as follows
syntax:
chmod permission your-script-name
Examples:
$ chmod +x your-script-name
$ chmod 755 your-script-name
Note: This will set read write execute(7) permission for owner, for group and other permission is read and execute only(5).
(3) Execute your script as
syntax:
bash your-script-name
sh your-script-name
./your-script-name
Examples:
$ bash bar
$ sh bar
$ ./bar
NOTE In the last syntax ./ means current directory, But only . (dot) means execute given command file in current shell without starting the new copy of shell, The syntax for . (dot) command is as follows. Syntax:
. command-name
Example:
$ . foo
Now you are ready to write first shell script that will print “Knowledge is Power” on screen. See the common vi command list , if you are new to vi.
$ vi first
#
# My first shell script
#
clear
echo “Knowledge is Power”
After saving the above script, you can run the script as follows:
$ ./first