Module: dylan-user Author: eec 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 // $HopeName: D-databases-sql-odbc!library.dylan(trunk.15) $ define library sql-odbc use functional-dylan; use io; use system; use generic-arithmetic; use sql, import: {sql}; use odbc-ffi, import: {odbc-ffi}; use c-ffi, export: {$sql-accessible-procedures, $sql-accessible-tables, $sql-catalog-name, $sql-catalog-name-separator, $sql-catalog-term, $sql-collation-seq, $sql-column-alias, $sql-data-source-name, $sql-data-source-read-only, $sql-database-name, $sql-dbms-name, $sql-dbms-ver, $sql-describe-parameter, $sql-dm-ver, $sql-driver-name, $sql-driver-odbc-ver, $sql-driver-ver, $sql-expressions-in-orderby, $sql-identifier-quote-char, $sql-integrity, $sql-keywords, $sql-like-escape-clause, $sql-max-row-size-includes-long, $sql-mult-result-sets, $sql-multiple-active-txn, $sql-need-long-data-len, $sql-odbc-ver, $sql-order-by-columns-in-select, $sql-procedure-term, $sql-procedures, $sql-row-updates, $sql-schema-term, $sql-search-pattern-escape, $sql-server-name, $sql-special-characters, $sql-table-term, $sql-user-name, $sql-xopen-cli-year, $sql-active-environments, $sql-catalog-location, $sql-concat-null-behavior, $sql-correlation-name, $sql-cursor-commit-behavior, $sql-cursor-rollback-behavior, $sql-file-usage, $sql-group-by, $sql-identifier-case, $sql-max-catalog-name-len, $sql-max-column-name-len, $sql-max-columns-in-group-by, $sql-max-columns-in-index, $sql-max-columns-in-order-by, $sql-max-columns-in-select, $sql-max-columns-in-table, $sql-max-concurrent-activities, $sql-max-cursor-name-len, $sql-max-driver-connections, $sql-max-identifier-len, $sql-max-procedure-name-len, $sql-max-schema-name-len, $sql-max-table-name-len, $sql-max-tables-in-select, $sql-max-user-name-len, $sql-non-nullable-columns, $sql-null-collation, $sql-quoted-identifier-case, $sql-txn-capable, $sql-alter-domain, $sql-alter-table, $sql-async-mode, $sql-batch-row-count, $sql-batch-support, $sql-bookmark-persistence, $sql-catalog-usage, $sql-convert-bigint, $sql-convert-binary, $sql-convert-bit, $sql-convert-char, $sql-convert-date, $sql-convert-decimal, $sql-convert-double, $sql-convert-float, $sql-convert-integer, $sql-convert-interval-year-month, $sql-convert-interval-day-time, $sql-convert-longvarbinary, $sql-convert-longvarchar, $sql-convert-numeric, $sql-convert-real, $sql-convert-smallint, $sql-convert-time, $sql-convert-timestamp, $sql-convert-tinyint, $sql-convert-varbinary, $sql-convert-varchar, $sql-convert-functions, $sql-create-assertion, $sql-create-character-set, $sql-create-collation, $sql-create-domain, $sql-create-schema, $sql-create-table, $sql-create-translation, $sql-create-view, $sql-cursor-sensitivity, $sql-datetime-literals, $sql-ddl-index, $sql-default-txn-isolation, $sql-driver-hdbc, $sql-driver-henv, $sql-driver-hdesc, $sql-driver-hlib, $sql-driver-hstmt, $sql-drop-assertion, $sql-drop-character-set, $sql-drop-collation, $sql-drop-domain, $sql-drop-schema, $sql-drop-table, $sql-drop-translation, $sql-drop-view, $sql-dynamic-cursor-attributes1, $sql-dynamic-cursor-attributes2, $sql-forward-only-cursor-attributes1, $sql-forward-only-cursor-attributes2, $sql-getdata-extensions, $sql-index-keywords, $sql-info-schema-views, $sql-insert-statement, $sql-keyset-cursor-attributes1, $sql-keyset-cursor-attributes2, $sql-max-async-concurrent-statements, $sql-max-binary-literal-len, $sql-max-char-literal-len, $sql-max-index-size, $sql-max-row-size, $sql-max-statement-len, $sql-numeric-functions, $sql-odbc-interface-conformance, $sql-oj-capabilities, $sql-param-array-row-counts, $sql-param-array-selects, $sql-schema-usage, $sql-scroll-options, //$sql-sql-conformance, $sql-sql92-datetime-functions, $sql-sql92-foreign-key-delete-rule, $sql-sql92-foreign-key-update-rule, $sql-sql92-grant, $sql-sql92-numeric-value-functions, $sql-sql92-predicates, $sql-sql92-relational-join-operators, $sql-sql92-revoke, $sql-sql92-row-value-constructor, $sql-sql92-string-functions, $sql-sql92-value-expressions, $sql-standard-cli-conformance, $sql-static-cursor-attributes1, $sql-static-cursor-attributes2, $sql-string-functions, $sql-subqueries, $sql-system-functions, $sql-timedate-add-intervals, $sql-timedate-diff-intervals, $sql-timedate-functions, $sql-txn-isolation-option, $sql-union}; export sql-odbc; end library; define module sql-odbc use functional-dylan; use threads; use sql, import: all, export: all; use odbc-ffi, import: { *trace-odbc-functions* }, export: { *trace-odbc-functions* }; // Debugging functions used to determine if finalization is occuring. // Once the gc limitation on weak tables is fixed, these functions // will no longer be needed. create set-finalize-notification, notify-of-finalization; create assert-odbc-goodness, report-condition, *odbc-print-condition*, *odbc-report-success-with-info*, *odbc-report-*; create , low-level-error-sqlstate; create , %environment-handle, , user-name, user-name-setter, password, password-setter, , datasource-name, datasource-name-setter, , %connection-handle; //++ Why is this exported? create ; create , , , ; create , , , , ; create , problem-diagnostic, diagnostic-return-code, , , , server-name, row-number, column-number, , connection-exception-user, connection-exception-database, connection-exception-dbms, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ; end module; define module sql-odbc-nice-layer //+++ Once the FFI is stable, I hope to do away with this module use functional-dylan; use c-ffi; use sql; use odbc-ffi; use format-out; use dylan-direct-c-ffi; //++++ for hokey garbage collection lossage. Lose this. export , , , , , ; export $null-statement-handle, $null-environment-handle, $null-connection-handle; export null-odbc-field?, nice-SQLFreeEnv, nice-SQLError, nice-SQLConnect, nice-SQLDriverConnect, nice-SQLPrepare, nice-SQLExecute, nice-SQLExecDirect, nice-SQLFetch, nice-SQLFetchScroll, nice-SQLBindCol, nice-SQLAllocStmt, nice-SQLFreeStmt, nice-SQLAllocHandle, nice-SQLFreeHandle, nice-SQLNumResultCols, nice-SQLDescribeCol, nice-SQLTables, nice-SQLColumns, nice-SQLStatistics, nice-SQLGetConnectOption, nice-SQLGetConnectAttr, nice-SQLSetConnectAttr, nice-SQLGetDiagField, nice-SQLGetDiagRec, nice-SQLGetInfo, nice-SQLSetStmtAttr, nice-SQLSetPos; end module; define module sql-odbc-conditions use functional-dylan; use format-out; use sql; use odbc-ffi; use sql-odbc-nice-layer; use sql-odbc; end module; define module sql-odbc-implementation use functional-dylan; use generic-arithmetic, prefix: "big/"; use dylan-extensions; use machine-words; use machine-word-lowlevel; use threads; use finalization; use c-ffi; use format-out; use format; use date; use dylan-primitives; use sql-odbc-nice-layer; use odbc-ffi; use sql; use sql-odbc; end module;