Monday, December 12, 2011

LDAP Structure

To get started with LDAP, you first need to know what a directory is. A directory is a specialized list that lets you quickly look up information about the things the directory references. For example, a telephone directory is an alphabetic list of people and organizations with phone numbers, and often addresses, too. A corporate directory is a database of people, network resources, organizations, and so forth. The corporate database probably holds not just phone numbers, but also other information like email addresses, employee and department numbers, and application configuration data. The corporate directory is managed by a directory server, which takes requests from client applications and serves them back directory data from the database.
LDAP, Lightweight Directory Access Protocol, provides a standard language that directory client applications and directory servers use to communicate with one another about data in directories. LDAP applications can search, add, delete and modify directory data. LDAP is a lightweight version of the earlier DAP, Directory Access Protocol, used by the International Organization for Standardization X.500 standard. DAP gives any application access to the directory through an extensible and robust information framework, but at a high administrative cost. DAP does not use the Internet standard TCP/IP protocol, has complicated directory naming conventions, and generally requires a big investment. LDAP preserves most features of DAP at lower cost. LDAP uses an open directory access protocol running over TCP/IP and uses simplified encoding methods. LDAP retains the X.500 standard data model and can support millions of entries for a comparatively modest investment in hardware and network infrastructure.
LDAP directories differ from relational databases. In LDAP, you do not look data up in tables. Instead, you look data up in trees, similar to the tree you get if you diagram the contents of a file system. The data is not in rows and columns, but in what are called entries. These entries are much like entries in the phone book. Entries may even actually contain phone numbers. Here is a text representation of an LDAP entry.
dn: uid=bjensen, ou=People, dc=example,dc=com
cn: Barbara Jensen
cn: Babs Jensen
sn: Jensen
givenname: Barbara
objectclass: top
objectclass: person
objectclass: organizationalPerson
objectclass: inetOrgPerson
ou: Product Development
ou: People
l: Cupertino
uid: bjensen
mail: bjensen@example.com
telephonenumber:             +1 408 555 1862      
facsimiletelephonenumber:             +1 408 555 1992      
roomnumber: 0209
userpassword: hifalutin
An LDAP entry is composed of attributes and their values. At the outset of the text representation you see the DN, Distinguished Name, uid=bjensen, ou=People, dc=example,dc=com. The DN is a distinguished name, because it distinguishes the entry from all others in the directory. You also see attributes like CN, Common Name, which takes values Barbara Jensen and Babs Jensen. You further see attributes like SN, surname, which takes the value Jensen, and mail, which takes the value bjensen@example.com.
You also see some objectClass attribute values. The objectClass attribute tells you what other attribute types the entry can have. Object class definitions are found in directory schema. Schema specify all the known object classes and attribute types available for entries in the directory. You can add schema definitions to LDAP directories, making the LDAP entries easily extensible.
When you want to look up something in a directory, you typically know the values of one of the attributes. By analogy, if you want to look up a phone number, you already know the name of the person or organization whose telephone number you want. If you are looking up a phone number, you also probably have some idea where the person or organization is located. The same is the case for LDAP directories. You typically need to have some idea where the entry is located.
For example, assume you want to look up Barbara Jensen’s phone number in the LDAP directory holding the entry shown previously. You need to know one of the attributes. In this case, you know Barbara’s name. You also need to know approximately where her entry is located. If you know that she is in the directory at Example.com, and that the root of their tree starts at dc=example,dc=com, that is enough.
There are GUI tools out there for LDAP lookups, but many systems also have a command called ldapsearch. You guessed it, ldapsearch is for searching LDAP directories. Here is an ldapsearch command that searches the entries under dc=example,dc=com for entries having common name Barbara Jensen.
$ ldapsearch -b dc=example,dc=com "(cn=Barbara Jensen)"
The argument to the -b option is the base DN for the search. By default, the ldapsearch command searches through all the entries in the tree below the base DN. The "(cn=Barbara Jensen)" is called the filter, because it tells me the criteria for filtering through the entries found under the base DN. If you have set everything up correctly, your search returns something very much like the entry shown above, except that you almost surely will not see the user password attribute and its value. You can also narrow the search results to see only the DN of the entry and the telephone number. You do this by adding the attribute or attributes you want returned after the filter.
$ ldapsearch -b dc=example,dc=com "(cn=Barbara Jensen)" telephoneNumber
If everything works as expected, this search returns a partial entry.
dn: uid=bjensen, ou=People, dc=example,dc=com
telephonenumber:             +1 408 555 1862      

Friday, December 9, 2011

completely remove and clean MySQL installation ubuntu

apt-get --purge remove mysql-server
apt-get --purge remove mysql-client
apt-get --purge remove mysql-common

apt-get autoremove
apt-get autoclean


see if anything depends on the installed packages
apt-cache rdepends mysql-server
apt-cache rdepends mysql-client


delete preferences(the next find command will delete everything):
rm -rf /etc/mysql

check to see if mysql is running:
service mysql status

Want to know service status;
service packagename status

-----------------installation of mysql--------------

First, install the MySQL server and client packages:
sudo apt-get install mysql-server mysql-client
 
When done, you have a MySQL database read to rock 'n roll. However, there's more to do.
You need to set a root password, for starters. MySQL has it's own user accounts, which are not related to the user accounts on your Linux machine. By default, the root account of the MySQL Server is empty. You need to set it. Please replace 'mypassword' with your actual password and myhostname with your actual hostname.

sudo mysqladmin -u root -h localhost password 'mypassword'
sudo mysqladmin -u root -h myhostname password 'mypassword'
 
Now, you probably don't want just the MySQL Server. Most likely you have Apache+PHP already installed, and want MySQL to go with that. Here are some libraries you need to install to make MySQL available to PHP:

sudo apt-get install php5-mysql

You can now access your MySQL server like this:

mysql -u root -p
Happy coding...;-)


Install MySQL Server 5 on Ubuntu

Open a terminal window, and use the following command:

sudo apt-get install mysql-server

If you are running PHP you will also need to install the php module for mysql 5:

sudo apt-get install php5-mysql

To create a new database, use the mysqladmin command:

mysqladmin create <databasename>
 more details..

Installing PHP5 and Apache on Ubuntu

sudo apt-get install apache2
sudo apt-get install php5
sudo apt-get install libapache2-mod-php5
sudo /etc/init.d/apache2 restart.

Wednesday, November 9, 2011

edit host file in windows 7

  1. Click Start
     Start button
    , click All Programs, click Accessories, right-click Notepad, and then click Run as administrator.

     User Account Control permission
    If you are prompted for an administrator password or for a confirmation, type the password, or click Allow or Yes.
  2. Open the Hosts file or the Lmhosts file, make the necessary changes, and then click Save on the Edit menu. If using Windows 7, you will need to click Save on the File menu.

Saturday, November 5, 2011

delete services permanently in windows 7/Vista


If you need to delete or overwrite a system file in Windows 7 or Vista, you’ll quickly notice that you cannot delete system files, even as administrator. This is because Windows system files are owned by the TrustedInstaller service by default, and Windows File Protection will keep them from being overwritten.
Thankfully, there’s a way that you can get around this. You need to take ownership of the files, and then assign yourself rights to delete or modify the file. For this, we’ll use the command line.

Open an administrator command prompt by typing cmd into the start menu search box, and hit the Ctrl+Shift+Enter key combination.



1. Run Regedit

2. Find the registry entry "HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services"

3. Look for the service there and delete it. You can look at the keys to know what files the service was using and delete them as well (if necessary).

4. Restart your system...

Monday, October 3, 2011

crm terminology 1


Price Books: A Price Book is a named collection of products and pricing created to serve a specific purpose, e.g. a segment of the market. For example, a business may have a Price Book for government sales, where prices are discounted, or include additional charges. Price Books in a CRM system allow sales staff to more easily quote prices when serving different types of customers that need differentiated pricing strategies.


Trouble Ticket (sometimes called Service Request): A Trouble Ticket is a record of information related to a customer issue or service request. A CRM System, as well as many other Help Desk and Issue Tracking systems, use Trouble Tickets to capture, track, and manage, customer issues or service requests.


Security Administration : The user security administration functions are the core of CRM security management, and are used to control the access to the CRM system for each user. vtiger CRM provides a privilege system that allows you to control who can view, edit, delete or create each type of CRM data. Roles, Profiles, and Groups, are used to make it easier to manage privileges for multiple users and managers, and eliminates the need to setup each privilege individually for each user. Instead, you can setup privileges for a Profile, and use the Profile for multiple users and Roles. Roles are organized hierarchically and a user can have multiple Roles, which provides an efficient way to assign privileges to users and managers performing multiple functions.


Profiles : Profiles are a set of security privileges for executing CRM operations, and can be assigned to users. Profiles make it easier to control detailed security privileges without having to specify them individually for each user. Specific security privileges can be granted once in a Profile, and then assigned to users as needed.


Roles : Role based security allows security setup using hierarchical roles that capture user and manager responsibilities in an organization. Each Role is primarily one or more Profiles, i.e. a set of security privileges. These Roles are then assigned to users. Security administration with role based security consists of determining the operations that must be executed by persons in particular jobs, and assigning Roles to users as needed.


Groups : In addition to restricting security privileges for each type of data, vtiger CRM provides some security control to permit access to specific subsets of data. For example, you may need to setup access to data for a specific customer account so that specific people can see the data. For better manageability, the CRM allows to collect users and Roles in Groups. Specific data, e.g. a specific Account, can be assigned to the group so that everyone in the group has accesses to that data.


Sharing Access : Sharing Access controls are used to determine what level of data sharing is enabled between users, e.g. can one salesperson see another's leads. By default the sharing access settings may allow all users to see all CRM records, even if the record is not assigned to them. Sharing Access allows you to restrict or allow such access for each type of CRM data.


Field Access : Field Access is used to control visibility of specific fields in each module to users of the module. You can use this function to either show or hide particular fields to the entire organization. Default field access settings include custom fields you may have created before. By default it is configured to display all data provided in the CRM system.


Tag Cloud : Tag Clouds are a convenience for CRM data access that has been tagged with labels. They are designed to improve the usability of the CRM by making it easier to access. They help to categorize the records based on a user's requirement from categories set by the CRM system. Tag Clouds are used to pool objects based on subjective or other values.


Calendar Reminder : Each user can activate an activity reminder function by setting a reminder interval in My Preferences. If activated a popup browser window will be displayed every time an activity is due. The popup window displays the time, status, and subject of an activity. It offers you the options to postpone or to close a reminder message. If postponed the message will popup again after the next reminder interval until it is closed.

Chat Functionality : The chat functions offered by the CRM provides instant messaging capabilities in a form of real-time communication between two or more CRM users. The CRM offers public as well as a private chat capabilities in so-called chat rooms. The public chat allows all CRM users to share a common chat room where each user can read all messages and can contribute if desired. The private chat room serves as a platform for the communications between two users.
                                                                   
                                                                                                                                 <<Previous

Friday, September 30, 2011

Windows Hot Keys

Win Press windows key to open start menu

Win+R Apply to open Run dialog box

Win+M Apply to minimize all opened windows

Win+Shift+M Apply to maximize all opened windows

Win+L Press keys to lock keyboard in windows XP

Win+E Press keys to open My Computer

Win+F Apply to open search options

Win+U Apply keys to open Utility Manager

Win+D To view desktop/minimize all windows

Win+F1 To view the detail windows help page

Win+Pause To view the System Properties dialog box

Win+Tab Move through taskbar programs

Win+F+Ctrl Apply to open search for computers

Alt+Tab Move through opened windows programs

Alt+F4 Press keys to close active windows program

Alt+Enter Apply to open properties of selected item

Alt+ SPACEBAR Open the system menu of active window

Alt+ SPACEBAR +N Press keys to minimize the active program

Alt+ SPACEBAR +R Press keys to restore the active program

Alt+ SPACEBAR+C Press keys to close the active program

Alt+ SPACEBAR+X Press keys to maximize the active program

Alt+ SPACEBAR+M Press keys to move the active program

Ctrl+Alt+Delete Apply to open windows task manager

Ctrl+Shift+Esc Apply to open windows task manager

Ctrl+Esc Press keys to open start menu

Shift Shift key to prevent CD from automatically playing

Shift+Delete To delete items permanently

Thursday, September 22, 2011

Windows Run Commands

Application to OpenRun Command
Accessibility Controls access.cpl
Accessibility Wizardaccwiz
Add Hardware Wizardhdwwiz.cpl
Add/Remove Programs appwiz.cpl
Administrative Toolscontrol admintools
Adobe Acrobat (if installed)acrobat
Adobe Designer (if installed)formdesigner
Adobe Distiller (if installed)acrodist
Adobe ImageReady (if installed)imageready
Adobe Photoshop (if installed)photoshop
Automatic Updateswuaucpl.cpl
Bluetooth Transfer Wizardfsquirt
Calculatorcalc
Certificate Managercertmgr.msc
Character Mapcharmap
Check Disk Utilitychkdsk
Clipboard Viewerclipbrd
Command Promptcmd
Component Servicesdcomcnfg
Computer Managementcompmgmt.msc
Control Panelcontrol
Date and Time Properties timedate.cpl
DDE Shares ddeshare
Device Managerdevmgmt.msc
Direct X Control Panel (if installed)*directx.cpl
Direct X Troubleshooterdxdiag
Disk Cleanup Utilitycleanmgr
Disk Defragmentdfrg.msc
Disk Managementdiskmgmt.msc
Disk Partition Managerdiskpart
Display Propertiescontrol desktop
Display Propertiesdesk.cpl
Display Properties (w/Appearance Tab Preselected)control color
Dr. Watson System Troubleshooting Utilitydrwtsn32
Driver Verifier Utilityverifier
Event Viewereventvwr.msc
Files and Settings Transfer Toolmigwiz
File Signature Verification Toolsigverif
Findfastfindfast.cpl
Firefox (if installed) firefox
Folders Propertiesfolders
Fontscontrol fonts
Fonts Folderfonts
Free Cell Card Gamefreecell
Game Controllers joy.cpl
Group Policy Editor (XP Prof)gpedit.msc
Hearts Card Gamemshearts
Help and Supporthelpctr
HyperTerminalhypertrm
Iexpress Wizardiexpress
Indexing Serviceciadv.msc
Internet Connection Wizardicwconn1
Internet Exploreriexplore
Internet Properties inetcpl.cpl
Internet Setup Wizardinetwiz
IP Configuration (Display Connection Configuration)ipconfig /all
IP Configuration (Display DNS Cache Contents)ipconfig /displaydns
IP Configuration (Delete DNS Cache Contents)ipconfig /flushdns
IP Configuration (Release All Connections)ipconfig /release
IP Configuration (Renew All Connections)ipconfig /renew
IP Configuration (Refreshes DHCP & Re-Registers DNS)ipconfig /registerdns
IP Configuration (Display DHCP Class ID)ipconfig /showclassid
IP Configuration (Modifies DHCP Class ID)ipconfig /setclassid
Java Control Panel (if installed)jpicpl32.cpl
Java Control Panel (if installed)javaws
Keyboard Propertiescontrol keyboard
Local Security Settingssecpol.msc
Local Users and Groupslusrmgr.msc
Logs You Out Of Windows logoff
Malicious Software Removal Tool mrt
Microsoft Access (if installed)msaccess
Microsoft Chatwinchat
Microsoft Excel (if installed)excel
Microsoft Frontpage (if installed)frontpg
Microsoft Movie Makermoviemk
Microsoft Paintmspaint
Microsoft Powerpoint (if installed)powerpnt
Microsoft Word (if installed)winword
Microsoft Syncronization Toolmobsync
Minesweeper Gamewinmine
Mouse Propertiescontrol mouse
Mouse Propertiesmain.cpl
Nero (if installed)nero
Netmeeting conf
Network Connectionscontrol netconnections
Network Connectionsncpa.cpl
Network Setup Wizardnetsetup.cpl
Notepadnotepad
Nview Desktop Manager (if installed)nvtuicpl.cpl
Object Packagerpackager
ODBC Data Source Administratorodbccp32.cpl
On Screen Keyboardosk
Opens AC3 Filter (if installed)ac3filter.cpl
Outlook Expressmsimn
Paintpbrush
Password Propertiespassword.cpl
Performance Monitorperfmon.msc
Performance Monitorperfmon
Phone and Modem Options telephon.cpl
Phone Dialerdialer
Pinball Gamepinball
Power Configuration powercfg.cpl
Printers and Faxescontrol printers
Printers Folderprinters
Private Character Editoreudcedit
Quicktime (If Installed)QuickTime.cpl
Quicktime Player (if installed)quicktimeplayer
Real Player (if installed)realplay
Regional Settings intl.cpl
Registry Editorregedit
Registry Editorregedit32
Remote Access Phonebookrasphone
Remote Desktop mstsc
Removable Storagentmsmgr.msc
Removable Storage Operator Requestsntmsoprq.msc
Resultant Set of Policy (XP Prof)
rsop.msc
Scanners and Camerassticpl.cpl
Scheduled Taskscontrol schedtasks
Security Center wscui.cpl
Servicesservices.msc
Shared Foldersfsmgmt.msc
Shuts Down Windowsshutdown
Sounds and Audio mmsys.cpl
Spider Solitare Card Gamespider
SQL Client Configuration cliconfg
System Configuration Editorsysedit
System Configuration Utilitymsconfig
System File Checker Utility (Scan Immediately)sfc /scannow
System File Checker Utility (Scan Once At The Next Boot)sfc /scanonce
System File Checker Utility (Scan On Every Boot)sfc /scanboot
System File Checker Utility (Return Scan Setting To Default)sfc /revert
System File Checker Utility (Purge File Cache)sfc /purgecache
System File Checker Utility (Sets Cache Size to size x)sfc /cachesize=x
System Informationmsinfo32
System Properties sysdm.cpl
Task Managertaskmgr
TCP Testertcptest
Telnet Clienttelnet
Tweak UI (if installed)tweakui
User Account Managementnusrmgr.cpl
Utility Managerutilman
Windows Address Bookwab
Windows Address Book Import Utilitywabmig
Windows Backup Utility (if installed)ntbackup
Windows Explorerexplorer
Windows Firewallfirewall.cpl
Windows Magnifier magnify
Windows Management Infrastructurewmimgmt.msc
Windows Media Playerwmplayer
Windows Messengermsmsgs
Windows Picture Import Wizard (need camera connected)wiaacmgr
Windows System Security Toolsyskey
Windows Update Launcheswupdmgr
Windows Version (to show which version of windows)winver
Windows XP Tour Wizardtourstart
Wordpad write

Thursday, September 8, 2011

Monday, September 5, 2011

Sunday, September 4, 2011

Auto-Implemented Properties in C# 3.0

This is one of the productive changes in C# 3.0 which makes your code more readable without writing more lines for implementing properties. In C# 2.0, we implement properties with get and set accessors for returning (get) a private member’s value and for setting (set) a private members value, like as follows:
 
   class Customer
   {
        private string customerID;
        public string CustomerID
        {
            get { return customerID; }
            set { customerID = value; }
        }
 
        private string contactName;
        public string ContactName
        {
            get { return contactName; }
            set { contactName = value; }
        }
 
        private string city;
        public string City
        {
            get { return city; }
            set { city = value; }
        }
   }
 
So, in the above code you have declared three properties, every time doing the same thing i.e. returning and setting a private members value, which reduces the readability of the code.
 
But in C# 3.0 the same pattern can be implemented in a better way like follows:
 
   class Customer
   {
        public string CustomerID { get; set; }
        public string ContactName { get; set; }
        public string City { get; set; }
   }
 
For the above given code C# Compiler will automatically generate backing fields.
 
But there is a limitation i.e. when we use this kind of syntax for implementing properties we have to implement both get and set accessors.
 
Whereas we can use modifiers today also with Auto implemented properties i.e. you can have properties as follows:
 
   public string CustomerID { get; private set; }

Anonymous Types in C# 3.0

C# 2.0 gave us Anonymous methods which are declared inline and had no formal name, in the same way C# 3.0 gives Anonymous Types which are created with the help of combining ‘var’ (Local Variable Type Inference) and Object Initializers as follows:
 
      var cust = new { CustID = 101, CustName = "Manish" };
 
For the above given code, C# compiler automatically generates a name. Each member of the type i.e. CustID and CustName are the properties taken from the syntax of Object Initializer.
 

Collection Initializers in C# 3.0

With C# 3.0, Collection Initializer is the combination of Collection Classes and Object Initializers. This feature is available for all the objects which are enumerable (i.e. they implement IEnumerable<T>) and have a public ‘Add’ Method to add the value.
   class CEmployee
   {
        private int EmpID;
        public int EID
        {
            get { return EmpID; }
            set { EmpID = value; }
        }
        private string EmpName;
        public string ENAME
        {
            get { return EmpName; }
            set { EmpName = value; }
        }
   }
Using the above given class, if you want to create a List of Employees, then in C# 2.0 the code will be:
   List<CEmployee> Employees = new List<CEmployee>();
   CEmployee e1 = new CEmployee(101, "Rohit Sharma");
// If you have  implemented Constructor
   Employees.Add(e1);
And, if there is no Constructor, then:
   List<CEmployee> Employees = new List<CEmployee>();
   CEmployee e1 = new CEmployee();
   e1.EID = 1;
   e1.ENAME = "Ramesh Sachin";
   Employees.Add(e1);
This is for 1 Employee, now if you want to add 5 Employees, then you have to create them separately and add them in the list one by one.
But in C# 3.0, it is made easier, like below:
   List<CEmployee> Employees = new List<CEmployee>()
   {
        new CEmployee() { EID = 101, ENAME = "Goutham" },
        new CEmployee() { EID = 102, ENAME = "Virat" },
        new CEmployee() { EID = 103, ENAME = "Raina" },
        new CEmployee() { EID = 104, ENAME = "Isanth" },
        new CEmployee() { EID = 105, ENAME = "Mahendar" }
   };

Object Initializers in C# 3.0

Object Initializers
This change in C# 3.0 allows developers to get rid of the constructors they have to write in case of C# 2.0. Say for example in C# 2.0 if you have a class named CEmployee as follows:
   class CEmployee
   {
        private int EmpID;
        public int EID
        {
            get { return EmpID; }
            set { EmpID = value; }
        }
        private string EmpName;
        public string ENAME
        {
            get { return EmpName; }
            set { EmpName = value; }
        }
   }
Now, if you want to initialize the objects at the time of declaration, as follows:
   CEmployee obj1 = new CEmployee(101, "Rohit Sharma");
   CEmployee obj2 = new CEmployee(102);
   CEmployee obj3 = new CEmployee("Rahul");
To write the code shown in the lines above, the developer should write three parameterized constructors inside the CEmployee class as follows:
   public CEmployee(int id, string name)
   {
        EmpID = id;
        EmpName = name;
   }
   public CEmployee(int id)
   {
        EmpID = id;
   }
   public CEmployee(string name)
   {
        EmpName = name;
   }
However in C# 3.0, if you have created properties inside your class as in above given CEmployee class, you do not have to write the constructors anymore. So C# 3.0 gives you this enhancement to write it easily as follows:
   CEmployee obj1 = new CEmployee() { EID = 102, ENAME = "Rahul" };
   CEmployee obj2 = new CEmployee() { EID = 103 };
   CEmployee obj3 = new CEmployee() { ENAME = "Vijay Kumar" };
The above given lines of code are easier to read in respect with C# 2.0 code, but you have to write a bit more code.

New Features of C# 3.0

The changes made in C# 3.0 are as follows:
  1. Local Variable Type Inference or Implicitly Typed Local Variables.
  2. Object Initializers 
  3.       Collection Initializers
  4.       Anonymous types
  5.       Auto-implemented properties
  6. Extension methods
  7. Lambda expressions
  8.        Query expressions
  9. Expression trees
  10.         Partial Methods
 Local Variable Type Inference
    var data = 1;
   data = 23.4f;                //Compile time Error
Interestingly ‘var’ can be used in any of the following ways:
Directly associating a value or type:
   var data1 = 10;             // data1 is of type System.Int32
   var data2 = 20.5f;          // data2 is of type System.Single
   var data3 = "Hello";        // data3 is of type System.String
   var data4 = new List<int>(); // data4 is of type Generic List<T>
   var data5 = new CEmployee(); // data5 is an instance of Class CEmployee
Associating with expressions:
     var data6 = 23 + 45;         // data6 is of type System.Int32
Association with methods:
In C# 2.0, if you want to call a method ( GetData( ) ) which returns you an integer, you will write something like this: 
     int data = GetData();
and if GetData() returns you a string, the above written line will throw an error, but now with ‘var’ you can write the same code as follows:
     var data = GetData();
Now even if your GetData() method returns you any type, the above written line need not be changed.
There are some rules associated with ‘var’, which are as follows:
1.    You must initialize ‘var’ type variables with some value or expression.
2.    Once the type is assigned to ‘var’ type variable you cannot change the type of value the variable holds.
3.    ‘var’ cannot be used as a return type of the methods.
var Add(int x,int y);              //Error
4.    ‘var’ cannot be used in argument list of the methods.
int Add(var x,var y);              //Error
5.    The contextual keyword 'var' can only appear within a local variable declaration         i.e. ‘var’ types can be created only inside a method or a block.

Saturday, September 3, 2011

Friday, August 19, 2011

InnoDB VS MyISAM

MyISAM offers speed whereas Innodb offers reliability. 
MyISAM is fast but with no transactions support, Innodb has certain, but very important limitations.

it's said that InnoDB works faster because it uses row locking instead of table locking, like MyISAM. However, if there are mainly SELECT statements, a MyISAM table might be faster.

If you need foreign key constraints or transactions, you can only use InnoDB, wheras if you need fulltext indexes, you can only use MyISAM tables at the moment.

With replication it's even possible to take advantage of both storage engines on one table. For example, the master could store a table as InnoDB which makes it fast for INSERTs, UPDATEs and DELETEs while the slave(s) could store the same table as MyISAM and offer the best performance for SELECTs.

If you have a lot of cncurrent inserts/updates I would recommend inndb since it supports row-locking.