X-Git-Url: http://git.kpe.io/?a=blobdiff_plain;f=db-odbc%2Fodbc-api.lisp;h=5ff3d09cb7f4750e32cedaf68fb1e45fb083eae9;hb=db9892632e6eb7869aea7a94c16b523a82de1501;hp=c032fd3ce6fd7ee6c9295444d1b1afc9be4756c6;hpb=53d82f855034e08c128c1f29ac905c0897a01480;p=clsql.git diff --git a/db-odbc/odbc-api.lisp b/db-odbc/odbc-api.lisp index c032fd3..5ff3d09 100644 --- a/db-odbc/odbc-api.lisp +++ b/db-odbc/odbc-api.lisp @@ -940,6 +940,20 @@ 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) + (print hstmt) + (print table-cs) + (print (uffi:convert-from-cstring table-cs)) + (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)) @@ -947,26 +961,27 @@ as possible second argument) to the desired representation of date/time/timestam (unwind-protect (with-foreign-objects ((dsn-len :short) (desc-len :short)) - (with-error-handling (:henv henv) - (let ((res - (SQLDataSources henv $SQL_FETCH_FIRST dsn - (1+ $SQL_MAX_DSN_LENGTH) - dsn-len desc 256 desc-len))) - (when (or (eql res $SQL_SUCCESS) - (eql res $SQL_SUCCESS_WITH_INFO)) - (push (convert-from-foreign-string dsn) results)) - - (do ((res (SQLDataSources henv $SQL_FETCH_NEXT dsn + (let ((res (with-error-handling (:henv henv) + (SQLDataSources henv $SQL_FETCH_FIRST dsn + (1+ $SQL_MAX_DSN_LENGTH) + dsn-len desc 256 desc-len)))) + (when (or (eql res $SQL_SUCCESS) + (eql res $SQL_SUCCESS_WITH_INFO)) + (push (convert-from-foreign-string dsn) results)) + + (do ((res (with-error-handling (:henv henv) + (SQLDataSources henv $SQL_FETCH_NEXT dsn (1+ $SQL_MAX_DSN_LENGTH) - dsn-len desc 256 desc-len) + dsn-len desc 256 desc-len)) + (with-error-handling (:henv henv) (SQLDataSources henv $SQL_FETCH_NEXT dsn (1+ $SQL_MAX_DSN_LENGTH) - dsn-len desc 256 desc-len))) - ((not (or (eql res $SQL_SUCCESS) - (eql res $SQL_SUCCESS_WITH_INFO)))) - (push (convert-from-foreign-string dsn) results))))) + dsn-len desc 256 desc-len)))) + ((not (or (eql res $SQL_SUCCESS) + (eql res $SQL_SUCCESS_WITH_INFO)))) + (push (convert-from-foreign-string dsn) results)))) (progn (free-foreign-object dsn) (free-foreign-object desc))) (nreverse results))) - +