 |
| DeviceSQL Language |
| A Simpler, Faster Way to Build Data Management Applications |
| The DeviceSQL™ language provides an easier, more efficient method for building sophisticated data management code for embedded systems. Modeled after Oracle's industry-standard PL/SQL, DeviceSQL is an easy-to-learn, high-level, strongly-typed language that has been specifically designed and tuned for embedded development. |
 |
| DeviceSQL is ideally-suited for speeding the development of more efficient, data-centric applications that leverage the data that flows in and through intelligent devices. Together with the rest of the DeviceSQL Framework, DeviceSQL enables developers to: |
 |
 |
Simplify application development by conceptualizing data management functions from a higher-level of abstraction |
 |
Do more with less effort by using a more expressive and powerful language for building data management applications and components |
 |
Increase application quality and portability by isolating applications from low-level implementation details and underlying platform-specifics |
|
 |
| Designed for Embedded Systems Development |
| DeviceSQL is expressly designed for demanding embedded systems requirements. While supporting many of the concepts and constructs in PL/SQL, DeviceSQL contains powerful extensions for low-level device control, minimal resource consumption, broad datatype support, and strong error and exception handling. These extensions provide the fine-grained control needed for the efficient construction, manipulation and storage of tables and data streams across a wide range of storage mediums. |
 |
| Get More Done with Less Effort |
| DeviceSQL enables developers to do more with less effort and less code. Today, data management code typically makes up 50% or more of all embedded application code. Programming data management functions manually in C or C++ has become very complex and time-consuming. Plus, data management code often suffers from implementation inconsistencies that make applications harder to debug, integrate and evolve. |
 |
| Instead of writing data management code directly in C or C++, the Encirq Framework abstracts underlying details so developers can conceptualize and build data management functions more efficiently in DeviceSQL. The DeviceSQL Compiler then automates the generation of robust, consistent, optimized source code in ANSI C format. |
 |
| DeviceSQL makes it easier to build data management components or entire data-centric applications. Using simple table and query statements plus controls for the interaction of data sources and storage mediums, DeviceSQL allows developers to focus on application functionality rather than all the low-level C programming needed to implement that functionality. Consider the following example: |
 |
 |
|
 |
| In the above example, a few lines of DeviceSQL code handled the data management tasks of hundreds of lines of C code. Together with features provided by the rest of DeviceSQL Framework, the Encirq solution has several other advantages including: |
 |
 |
Improved data integrity with built-in crash recovery, back-up and restore |
 |
Consistent, standardized, efficient implementation at the C source code level (helps eliminate data integration issues) |
 |
Greater application portability |
|
 |
| Works Seamlessly with C, C++ and Java Applications |
| DeviceSQL works seamlessly with C, C++ and Java applications and many commercial development environments. DeviceSQL programs can be created using any editor. And since the output from the DeviceSQL Compiler is portable ANSI C source code - and since Encirq-generated code has no fixed, proprietary API - functions created in DeviceSQL can be seamlessly integrated with existing applications. Alternatively, DeviceSQL code can invoke external C functions, such as sophisticated math libraries, filter functions and more to leverage legacy software investments and expertise. |
 |
Broad Datatype Support
DeviceSQL supports the full range of datatypes used in embedded systems. |
 |
| Datatype support includes: |
INT, INTEGER, CINT, CLONG, LONG
SHORT, CSHORT
DOUBLE, CDOUBLE
VARCHAR, VARCHAR2
NVARCHAR
TIMESTAMP
DATE
BOOLEAN
BINARY
BIT8, BIT16, BIT32
POINTER
PHONECHAR
RECORD
STREAM |
| |
| |
 |