X-Git-Url: http://git.kpe.io/?a=blobdiff_plain;f=sql.lisp;h=86f689328f0b2925819c5285874d993ebc6fe4fc;hb=aeade16272b79115d3f307906c7a3e9597137e97;hp=7e5ce8892f1e5d61c17b964c8711b2819cfce680;hpb=cd8b476663925be5a1ebbeb569a056e2e5b93aba;p=umlisp.git diff --git a/sql.lisp b/sql.lisp index 7e5ce88..86f6893 100644 --- a/sql.lisp +++ b/sql.lisp @@ -1,18 +1,39 @@ -;;;; -*- Mode: LISP; Syntax: Common-Lisp; Base: 10; Pkg: umlisp -*- -;; SQL/UMLS database Layer over database backend -;; Copyright (c) 2001 Kevin M. Rosenberg, M.D. -;; $Id: sql.lisp,v 1.2 2002/10/08 22:13:41 kevin Exp $ - -(in-package :umlisp) - -(declaim (optimize (speed 1) (safety 3))) - -(defvar *umls-sql-dsn* "KUMLS2002AC") -(defun umls-sql-dsn () - *umls-sql-dsn*) -(defun umls-sql-dsn! (dbname) - (sql-disconnect-pooled) - (setq *umls-sql-dsn* dbname)) +;;;; -*- Mode: Lisp; Syntax: ANSI-Common-Lisp; Base: 10; Package: umlisp -*- +;;;; ************************************************************************* +;;;; FILE IDENTIFICATION +;;;; +;;;; Name: sql.lisp +;;;; Purpose: Low-level SQL routines data for UMLisp +;;;; Author: Kevin M. Rosenberg +;;;; Created: Apr 2000 +;;;; +;;;; $Id$ +;;;; +;;;; This file, part of UMLisp, is +;;;; Copyright (c) 2000-2004 by Kevin M. Rosenberg, M.D. +;;;; +;;;; UMLisp users are granted the rights to distribute and use this software +;;;; as governed by the terms of the GNU General Public License. +;;;; ************************************************************************* + +(in-package #:umlisp) + +(defvar +umls-sql-map+ + '((:2002AD . "KUMLS2002AD") (:2003AA . "KUMLS2003AA") + (:2003AB . "KUMLS2003AB") (:2003AC . "KUMLS2003AC") + (:2004AA . "KUMLS2004AA"))) +(defvar +default-umls-db+ :2003AC) + + +(defun lookup-db-name (db) + (cdr (assoc (ensure-keyword db) +umls-sql-map+))) + +(defvar *umls-sql-db* +default-umls-db+) +(defun umls-sql-db () + *umls-sql-db*) + +(defun umls-sql-db! (db) + (setq *umls-sql-db* db)) (defvar *umls-sql-user* "secret") (defun umls-sql-user () @@ -44,7 +65,8 @@ (defun sql-connect () "Connect to UMLS database, automatically used pooled connections" - (clsql:connect `(,(umls-sql-host) ,(umls-sql-dsn) ,(umls-sql-user) ,(umls-sql-passwd)) + (clsql:connect (list *umls-sql-host* (lookup-db-name *umls-sql-db*) + *umls-sql-user* *umls-sql-passwd*) :database-type *umls-sql-type* :pool t)) (defun sql-disconnect (conn) @@ -65,8 +87,8 @@ (sql-query stmt conn) (sql-execute stmt conn))) -(defun sql-query (cmd conn &key (types :auto)) - (clsql:query cmd :database conn :types types)) +(defun sql-query (cmd conn &key (result-types :auto)) + (clsql:query cmd :database conn :result-types result-types)) (defun sql-execute (cmd conn) (clsql:execute-command cmd :database conn)) @@ -88,9 +110,6 @@ (with-mutex-sql (conn) (sql-execute cmd conn))) -(defun mutex-sql-query (cmd &key (types :auto)) +(defun mutex-sql-query (cmd &key (result-types :auto)) (with-mutex-sql (conn) - (sql-query cmd conn :types types))) - - - + (sql-query cmd conn :result-types result-types)))