r9450: 22 May 2004 Kevin Rosenberg
[clsql.git] / db-aodbc / aodbc-sql.lisp
index a43fb188dab9eac61c5271c95ad075ba9defdde8..8a6ee00b8f630da9d6304b922ebb879c021a1ac3 100644 (file)
 
 
 
-;;; Sequence functions
-
-(defun %sequence-name-to-table (sequence-name)
-  (concatenate 'string "_CLSQL_SEQ_" (sql-escape sequence-name)))
-
-(defun %table-name-to-sequence-name (table-name)
-  (and (>= (length table-name) 11)
-       (string-equal (subseq table-name 0 11) "_CLSQL_SEQ_")
-       (subseq table-name 11)))
-
-(defmethod database-create-sequence (sequence-name
-                                    (database aodbc-database))
-  (let ((table-name (%sequence-name-to-table sequence-name)))
-    (database-execute-command
-     (concatenate 'string "CREATE TABLE " table-name
-                 " (last_value int NOT NULL PRIMARY KEY, increment_by int, min_value int, is_called char(1))")
-     database)
-    (database-execute-command 
-     (concatenate 'string "INSERT INTO " table-name
-                 " VALUES (1,1,1,'f')")
-     database)))
-
-(defmethod database-drop-sequence (sequence-name
-                                  (database aodbc-database))
-  (database-execute-command
-   (concatenate 'string "DROP TABLE " (%sequence-name-to-table sequence-name)) 
-   database))
-
-(defmethod database-list-sequences ((database aodbc-database)
-                                    &key (owner nil))
-  (declare (ignore owner))
-  (warn "database-list-sequences not implemented for AODBC.")
-  nil)
-
-
-(defmethod database-list-indexes ((database aodbc-database)
-                                &key (owner nil))
-  (warn "database-list-indexes not implemented for AODBC.")
-  nil)
-
-(defmethod database-set-sequence-position (sequence-name
-                                           (position integer)
-                                           (database aodbc-database))
-  (database-execute-command
-   (format nil "UPDATE ~A SET last_value=~A,is_called='t'" 
-          (%sequence-name-to-table sequence-name)
-           position)
-   database)
-  position)
-
-(defmethod database-sequence-next (sequence-name (database aodbc-database))
-  (without-interrupts
-   (let* ((table-name (%sequence-name-to-table sequence-name))
-         (tuple
-          (car (database-query 
-                (concatenate 'string "SELECT last_value,is_called FROM " 
-                             table-name)
-                database :auto nil))))
-     (cond
-       ((char-equal (schar (second tuple) 0) #\f)
-       (database-execute-command
-        (format nil "UPDATE ~A SET is_called='t'" table-name)
-        database)
-       (car tuple))
-       (t
-       (let ((new-pos (1+ (car tuple))))
-        (database-execute-command
-         (format nil "UPDATE ~A SET last_value=~D" table-name new-pos)
-         database)
-        new-pos))))))
-            
-(defmethod database-sequence-last (sequence-name (database aodbc-database))
-  (without-interrupts
-   (caar (database-query 
-         (concatenate 'string "SELECT last_value FROM " 
-                      (%sequence-name-to-table sequence-name))
-         database :auto nil))))
-
 (defmethod database-create (connection-spec (type (eql :aodbc)))
   (warn "Not implemented."))