The OpenESQL preprocessor provides two preprocessor options - ODBC for native code and 
               		ADO for .NET managed code. 
               	 
            
 
            	 
             
               		 
               		  
               - ODBC 
                  		  
               
- Use OpenESQL with the ODBC option to compile your native applications. This option: 
                  			 
                   
                     				
                     - Is invoked using the SQL(DBMAN=ODBC) compiler directive 
                        				
                     
- Uses any ODBC drivers and data providers 
                        				
                     
- Connects to one or more ODBC data sources 
                        				
                     
- Compiles applications to communicate with the OpenESQL ODBC Runtime 
                        				
                     
- Enables maximum interoperability between different database systems 
                        				
                     
- Provides comprehensive support for pessimistic (locking) concurrency control 
                        				
                     
- Does not support disconnected or offline DataSets 
                        				
                     
 
- ADO 
                  		  
               
- Use OpenESQL with the ADO option to compile your .NET managed applications. This option: 
                  			 
                   
                     				
                     - Is invoked using the SQL(DBMAN=ADO) compiler directive 
                        				
                     
- Uses ADO.NET data providers 
                        				
                     
- Connects to one ADO.NET data source 
                        				
                     
- Compiles applications to communicate with the OpenESQL .NET Managed Runtime 
                        				
                     
- Enables EXEC SQL statements to communicate with the ADO.NET data provider and data source name specified 
                        				
                     
- Supports the use of EXEC ADO statements to create and manipulate ADO.NET objects 
                        				
                     
- Maximizes scalability of data handling components in distributed systems 
                        				
                     
- Is strongly biased in favour of optimistic (non-locking) concurrency control 
                        				
                     
- Fully supports disconnected and offline DataSets 
                        				
                     
- Supports dynamic SQL using PREPARE, EXECUTE and EXECUTE IMMEDIATE statements and cursors that use prepared statements, but
                        only with host variable lists in the EXECUTE and OPEN statements