ODBC Driver Support
You might ask, “Why doesn’t Iron Speed Designer use ODBC to support all databases?” There are several reasons.
Schema querying is not supported by ODBC
Iron Speed Designer uses the GetOLEDBSchemaTable() method in OLEDB to query the database for its schema. Iron Speed Designer needs the database schema information in order to create the Data Access Layer classes for your application. Such a schema querying mechanism is not available in ODBC.
In fact, many databases do not even provide a GetOLEDBSchemaTable() method for schema querying, so we must write custom schema querying code for these databases. Specifically, Iron Speed Designer queries for information about:
-
Tables
-
Columns (fields in tables)
-
Primary keys
-
Foreign keys
-
Constants used as database defaults
SQL syntax varies from database to database
Iron Speed Designer creates SQL for your application. Unfortunately, the SQL language syntax varies from database to database, requiring us to implement custom SQL for each database. One simple example of SQL syntax variance is the characters used to enclose table names:
Database |
Table Name Syntax |
Microsoft SQL Server |
[Customers] (Square brackets) |
Oracle |
“Customers” (Double quote characters) |
Microsoft Access |
‘Customers’ (Single quote characters) |
MySQL |
`Customers` (Accent grave characters) |
Because of this SQL syntax variance, it is impossible to use a single generic database driver approach.