138:(or other server commands), along with optional code to modify them before being sent to the server. For instance, a typical query document might contain a query string that would log into the database server, and if that was successful, look up the current date from the local client machine using a Mac OS call, and then use that date in a query that returns inventory in a warehouse for a given date. Query documents could also include computer code and resources needed to support this process, for instance, a dialog box asking for the username and password.
22:
156:, 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.
175:
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.
171:). 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.
145:, and ran each query resource inside in turn. The DAM would ensure that any needed code in the document would be run without the application even being aware of it, and eventually, results would be passed back to the application for display. The entire operation was opaque, allowing applications to add DAM support with ease.
148:
DAM also included two more direct API's, the High Level interface, and the Low Level interface. High Level was fairly similar to 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
137:
Like most Apple software, DAM attempted to make the query process as simple as possible for the users, both application users and programmers writing those applications. One particularly notable feature was the concept of "query documents". Query documents contained any number of pre-defined queries
174:
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
133:
DAM and ODBC are similar in many ways. The primary purpose of both systems was to send "query strings" to a data provider, who would respond (potentially) with a "result set" consisting of rows of data. Both systems were expected to convert data to and from the system's respective formats, integers
223:
A number of other applications also used the system, perhaps ironically
Microsoft's various Office products doing so with the most regularity. Other than that DAM support was fairly rare, and the product did not see widespread use. Perhaps much of this was due to the incomplete nature of the DAM
196:
databases, formerly impossible because each regional area used their own database servers which DAL now combined into one. Reorders for more stock could be made by dragging a series of ice cream scoops on a graphical display of the current warehoused inventory.
191:
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 demo of the system showed a HyperCard stack querying a series of
152:
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
228:; the need for DAL middleware in most cases, and the lack of low-cost query document builders (there were some expensive ones) made the overhead of using DAM quite high.
51:
284:
134:
and strings for instance. Additionally, both provided a communications subsystem that hid the details of sending queries and data between the client and server.
113:, DAM saw little use and was eventually dropped in the late 1990s. Only a handful of products ever used it, although it was used for some extremely impressive
141:
Applications could use query documents without having any idea of the internals of the query. They simply opened the document, which consisted of a series of
149:
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.
289:
264:
235:. A "classic" Mac OS version of ODBC was available for some time, although support was limited. Starting with the release of OS X 10.2
73:
220:. Other companies followed similar routes, and soon the event-driven database front-end was a standard feature of most systems.
188:
34:
44:
38:
30:
55:
200:
The system was so impressive that it made other database vendors scramble to provide similar systems;
217:
160:
153:
106:
159:
In contrast, ODBC was developed from the start to be a SQL-based system, based on the standardized
209:
201:
231:
Work on DAM ended in the mid-1990s, and disappeared entirely sometime before the release of
193:
102:
278:
142:
269:
255:
for processing, similar in concept to ODBC when used with a non-SQL data source.
168:
248:
184:
232:
114:
94:
252:
164:
117:
in the early 1990s. More modern versions of the classic Mac OS, and
247:
Apple has introduced a new and much "higher level" system known as
240:
118:
122:
110:
98:
15:
251:. Core Data allows developers to serialize data into
243:
cross-platform ODBC drivers. Starting with OS X 10.4
43:but its sources remain unclear because it lacks
239:, Apple started distributing a version of the
8:
74:Learn how and when to remove this message
105:, introduced in 1991 as an extension to
285:Macintosh operating systems development
183:One of the major clients for DAM was
7:
14:
290:Classic Mac OS programming tools
20:
1:
189:rapid application development
306:
270:Developing with Core Data
212:, releasing it first as
109:. Similar in concept to
29:This article includes a
187:, Apple's data manager/
125:for this role instead.
58:more precise citations.
204:immediately purchased
218:Oracle Media Objects
161:Call-Level Interface
154:Data Access Language
265:Data Access Manager
91:Data Access Manager
210:Spinnaker Software
202:Oracle Corporation
86:Classic Mac OS API
31:list of references
167:(now part of the
84:
83:
76:
297:
79:
72:
68:
65:
59:
54:this article by
45:inline citations
24:
23:
16:
305:
304:
300:
299:
298:
296:
295:
294:
275:
274:
261:
181:
131:
87:
80:
69:
63:
60:
49:
35:related reading
25:
21:
12:
11:
5:
303:
301:
293:
292:
287:
277:
276:
273:
272:
267:
260:
259:External links
257:
194:Baskin-Robbins
180:
177:
130:
127:
103:classic Mac OS
85:
82:
81:
39:external links
28:
26:
19:
13:
10:
9:
6:
4:
3:
2:
302:
291:
288:
286:
283:
282:
280:
271:
268:
266:
263:
262:
258:
256:
254:
250:
246:
242:
238:
234:
229:
227:
221:
219:
215:
211:
207:
203:
198:
195:
190:
186:
178:
176:
172:
170:
166:
162:
157:
155:
150:
146:
144:
139:
135:
128:
126:
124:
120:
116:
112:
108:
104:
100:
96:
92:
78:
75:
67:
57:
53:
47:
46:
40:
36:
32:
27:
18:
17:
244:
236:
230:
225:
222:
213:
205:
199:
182:
173:
158:
151:
147:
140:
136:
132:
93:(DAM) was a
90:
88:
70:
61:
50:Please help
42:
216:, and then
214:Oracle Card
56:introducing
279:Categories
226:as a whole
169:Open Group
64:March 2019
249:Core Data
185:HyperCard
143:resources
233:Mac OS X
129:Concepts
115:demoware
107:System 7
101:for the
95:database
224:system
97:access
52:improve
253:SQLite
237:Jaguar
165:X/Open
121:, use
245:Tiger
241:iODBC
208:from
163:from
119:macOS
37:, or
206:PLUS
179:Uses
123:ODBC
111:ODBC
89:The
99:API
281::
41:,
33:,
77:)
71:(
66:)
62:(
48:.
Text is available under the Creative Commons Attribution-ShareAlike License. Additional terms may apply.