using query documents, although it was expected that the application would construct the queries in code rather than resources. The High Level interface is broadly similar to ODBC's public interface. Low Level allowed the programmer to intercede at any point in the query process, retrieving data line-by-line for instance. One major difference between DAM and ODBC came about largely by accident. Prior to the development of DAM, Apple had purchased a database middleware product they sold as the Data Access Language, or DAL. DAL was essentially a standardized SQL with translators for various databases that ran on the server side. Standards for SQL were extremely basic at the time, and relatively poorly supported, DAL addressed this by having a single language and converting to and from the other systems. Client software, including DAM, could send queries in DAL's standard language which would then be translated and executed regardless of the back-end database. In contrast, ODBC was developed from the start to be a SQL-based system, based on the standardized Call-Level Interface from X/Open (now part of the Open Group). Under OBDC, every data source was made to look like a SQL server. For serverless sources, such as text files, a local SQL parser would interpret the commands and read the file. Under ODBC, all data source drivers are expected to understand SQL and translate it to the local dialect if needed, as well as convert data into standard formats when it is returned. This difference made DAM much less useful than ODBC in practice. Since it was expected that DAL would be providing query standardization, DAM had no layer similar to ODBC's for translating different dialects. In order for DAM to be truly useful, the user also had to buy and install a DAL server for their particular database. DAL was generally known to be slow and expensive, seriously degrading DAM's overall value. Further, DAM did not standardize the language for accessing non-SQL data sources; an adaptor for a text file might use a non-SQL language, or a completely function-call based system instead. Nor were any simple interfaces for text files or similar data sources included with basic DAM installs. Uses One of the major clients for DAM was HyperCard, Apple's data manager/rapid application development system. Combining HyperCard's excellent forms system with data from DAM resulted in something that no-one had ever seen before data-driven GUI apps. The most common