X-Git-Url: http://git.kpe.io/?a=blobdiff_plain;f=db-odbc%2Fodbc-api.lisp;h=b9223d68fb7d44cdb35e3c6380f5e3abeaf17c05;hb=947d861d8857ce104a5c61ba993c3cf468a730d8;hp=0f27b5767ee3087ec26101ac78bc34e84fdf823c;hpb=a9f57540c378329f627b5b3bd2a2991689638331;p=clsql.git diff --git a/db-odbc/odbc-api.lisp b/db-odbc/odbc-api.lisp index 0f27b57..b9223d6 100644 --- a/db-odbc/odbc-api.lisp +++ b/db-odbc/odbc-api.lisp @@ -24,11 +24,16 @@ May be locally bound to something else if a certain type is necessary.") (defvar *binary-format* :unsigned-byte-vector) -(defvar *time-conversion-function* (lambda (universal-time &optional fraction) - (declare (ignore fraction)) - universal-time) +(defvar *time-conversion-function* + (lambda (universal-time &optional fraction) + (declare (ignore fraction)) + (clsql-base:format-time + nil (clsql-base:utime->time universal-time) + :format :iso) + #+ignore + universal-time) "Bound to a function that converts from a Lisp universal time fixnum (and a fractional -as possible second argument) to the desired representation of date/time/timestamp.") +as possible second argument) to the desired representation of date/time/timestamp. By default, returns an iso-timestring.") (defvar +null-ptr+ (make-null-pointer :byte)) (defparameter +null-handle-ptr+ (make-null-pointer :void)) @@ -940,6 +945,17 @@ as possible second argument) to the desired representation of date/time/timestam (with-error-handling (:hstmt hstmt) (SQLTables hstmt +null-ptr+ 0 +null-ptr+ 0 +null-ptr+ 0 +null-ptr+ 0))) +(defun %table-statistics (table hstmt &key unique (ensure t)) + (with-cstrings ((table-cs table)) + (with-error-handling (:hstmt hstmt) + (SQLStatistics + hstmt + +null-ptr+ 0 + +null-ptr+ 0 + table-cs (length table) ;;$SQL_NTS + (if unique $SQL_INDEX_UNIQUE $SQL_INDEX_ALL) + (if ensure $SQL_ENSURE $SQL_QUICK))))) + (defun %list-data-sources (henv) (let ((dsn (allocate-foreign-string (1+ $SQL_MAX_DSN_LENGTH))) (desc (allocate-foreign-string 256))