Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!mnetor!uunet!seismo!mcvax!cernvax!ethz!marti From: marti@ethz.UUCP (Robert Marti) Newsgroups: comp.databases Subject: Re: Call Interfaces to RDBMSs Message-ID: <174@bernina.UUCP> Date: Sat, 8-Aug-87 05:10:39 EDT Article-I.D.: bernina.174 Posted: Sat Aug 8 05:10:39 1987 Date-Received: Sun, 9-Aug-87 13:30:06 EDT References: <168@bernina.UUCP> <3209@zen.berkeley.edu> Organization: ETH Zuerich, Switzerland Lines: 48 In article <3209@zen.berkeley.edu>, larry@xanadu.uucp (Larry Rowe) writes in response to my previous posting: > ... the preprocessor that > you mention just translates from a ``user friendly'' notation > to an ``ugly'' subroutine call interface. ... Well, I don't think of EXEC SQL or ## markers as user-friendly, but I guess that's just a matter of taste. Speaking of a user-friendly interface from an application program to a DBMS: I really liked the idea of database programming languages such as Pascal/R, Plain, and Rigel. Unfortunately -- as we have experienced ourselves with Modula/R -- it is a pain to port these languages to other architectures, operating systems, and/or database systems. > ... > this solution assumes that the subroutine call interface can be > linked into your program. on the vax and 68K/unix this is possible > because all languages use a standard subroutine call interface. i don't > recall what machine you are using or what modula compiler you are > using, but this might present a problem. ... We are using Sun-3s running UNIX (SunOS Release 3.2, to be exact) and Sun Modula-2, Release 2.0. There are two ways to call C functions: - writing a DEFINITION MODULE FOR C whose implementation just happens to be a bunch of C functions - using the SYSTEM.CCALL procedure to directly call C functions. The first parameter to CCALL must be an ARRAY OF CHAR which contains the name of the C function. The rest of the parameters are unchecked. CCALL may either be used as procedure or as function procedure returning an INTEGER. The responses I got so far indicate that EMPRESS/32 and Sybase support call interfaces, so I'll look into it. On a final note, one drawback of call interfaces occurred to me after sending out my previous message: Most modern systems using the pre-compilation approach generate an optimized access-plan in this step. Unfortunately, I don't see an easy way to this with a call interface, so it looks as if each query (call) will have to incur the overhead of parsing the query, optimizing it and generating an access plan. It seems the best one could do is generating all access plans when starting up the application. Bob -- Robert Marti Phone: +41 1 256 52 36 Institut fur Informatik ETH Zentrum/SOT CSNET/ARPA: marti%ifi.ethz.ch@relay.cs.net CH-8092 Zurich, Switzerland UUCP: ...seismo!mcvax!ethz!marti