Module: select-viewer Synopsis: A simple sql query viewer Author: Keith Playford Copyright: Original Code is Copyright (c) 1995-2004 Functional Objects, Inc. All rights reserved. License: Functional Objects Library Public License Version 1.0 Dual-license: GNU Lesser General Public License Warranty: Distributed WITHOUT WARRANTY OF ANY KIND define constant = ; // TODO: Create and define an object. // TODO: Implement open-database. Whatever you return is passed in to query-database // and close-database. define method open-database (name :: , user-name :: , password :: ) => (dbd :: ) #t end method; // TODO: Implement query-interface. Use compute-column-headings on the result // sequence to generate the headings for you. define method query-database (dbd :: , query :: ) => (headings :: , rows :: ) let results = #[["Clanger", "Tiny", "Eats soup"], ["Dragon", "Soup", "Makes soup"], ["Tree", "Music", "Grows notes"]]; let headings = compute-column-headings(results); values(headings, results) end; end method; define method compute-column-headings (results :: ) => (headings :: ) if (empty?(results)) #[] else let n-cols = size(first(results)); let headings = make(, size: n-cols); for (i from 0 below n-cols) headings[i] := format-to-string("Column %=", i + 1); end; headings end; end method; // TODO: Implement close-database. define method close-database (dbd :: ) => () end method; // eof