Next Previous Top Index

OLE, COM, ActiveX and DBMS Reference

Contents


Contents
Copyright and Trademarks
1 - The SQL-ODBC Library
1.1 - Introduction
1.1.1 - Implementation
1.1.2 - Using the SQL-ODBC library in applications
1.1.3 - SQL Standards
1.1.4 - Object-oriented languages and relational databases
1.1.5 - Result-retrieval protocol
1.1.6 - Processing results
1.1.7 - Bridging the object-relational gap
1.1.8 - Error handling
1.1.9 - Examples used in this document
1.2 - Connecting to a database
1.2.1 - The <DBMS> class
<dbms>
1.2.2 - The <USER> class
<user>
1.2.3 - The <DATABASE> class
<database>
1.2.4 - The <CONNECTION> class
<connection>
1.2.5 - Connection protocol functions, methods, and macros
with-dbms
dbms
database
user
1.2.6 - Connecting and disconnecting
connect
connections
default-connection
disconnect
disconnect-all
with-connection
with-database
1.3 - Executing SQL statements
1.3.1 - The null value
<null-value>
$null-value
1.3.2 - Input indicators and output indicators
1.3.3 - The SQL statement class
<database-statement>
execute
<sql-statement>
coercion-policy
coercion-policy-setter
datatype-hints
datatype-hints-setter
execute
input-indicator
input-indicator-setter
output-indicator
output-indicator-setter
text
text-setter
1.4 - Data retrieval using result-set collection
1.5 - Result-set collections
1.5.1 - Record class
<coercion-policy>
<record>
1.5.2 - Result-set policy class
<result-set-policy>
1.5.3 - Result-set classes
<result-set>
<forward-only-result-set>
<scrollable-result-set>
1.5.4 - Liaison functions
1.5.5 - Coercion policies
1.6 - Data types and conversions
1.7 - Warning and error conditions
1.7.1 - Diagnostics
row-count
<diagnostic>
condition-number
returned-sqlstate
class-origin
subclass-origin
connection-name
message-text
1.7.2 - SQL condition classes
<ambiguous-cursor-name>
<cardinality-violation>
<connection-exception>
<connection-does-not-exist>
<connection-failure>
<connection-name-in-use>
<sql-client-unable-to-establish-connection>
<sql-server-rejected-establishment-of-connection>
<transaction-resolution-unknown>
<cursor-operation-conflict>
<data-exception>
<character-not-in-repertoire>
<datetime-field-overflow>
<division-by-zero>
<error-in-assignment>
<indicator-overflow>
<interval-field-overflow>
<invalid-character-value-for-cast>
<invalid-datetime-format>
<invalid-escape-character>
<invalid-escape-sequence>
<invalid-fetch-sequence>
<invalid-parameter-value>
<invalid-time-zone-displacement-value>
<null-value-no-indicator-parameter>
<Numeric-value-out-of-range>
<string-data-length-mismatch>
<string-data-right-truncation>
<substring-error>
trim-error>
<unterminated-C-string>
<dependent-privilege-descriptors-still-exist>
<dynamic-sql-error>
<cursor-specification-cannot-be-executed>
<invalid-descriptor-count>
<invalid-descriptor-index>
<prepared-statement-not-a-cursor-specification>
<restricted-data-type-attribute-violation>
<using-clause-does-not-match-dynamic-parameter-specification>
<using-clause-does-not-match-target-specification>
<using-clause-required-for-dynamic-parameters>
<using-clause-required-for-result-fields>
<feature-not-supported>
<multiple-server-transaction>
<integrity-constraint-violation>
<invalid-authorization-specification>
<invalid-catalog-name>
<invalid-character-set-name>
<invalid-condition-number>
<invalid-cursor-name>
<invalid-schema-name>
<invalid-sql-descriptor-name>
<invalid-sql-statement-name>
<invalid-transaction-state>
<invalid-transaction-termination>
<no-data>
<remote-database-access>
<successful-completion>
<syntax-error-or-access-rule-violation>
<syntax-error-or-access-rule-violation-in-direct-sql-statement>
<syntax-error-or-access-rule-violation-in-dynamic-sql-statement>
<transaction-rollback>
<transaction-rollback-due-to-integrity-constraint-violation>
<transaction-rollback-due-to-serialization-failure>
<statement-completion-unknown>
<triggered-data-change-violation>
<sql-warning>
<warning-cursor-operation-conflict>
<disconnect-error>
<implicit-zero-bit-padding>
<insufficient-item-descriptor-areas>
<null-value-eliminated-in-set-function>
<privilege-not-granted>
<privilege-not-revoked>
<query-expression-too-long-for-information-schema>
<search-condition-too-long-for-information-schema>
<warning-string-data-right-truncation>
<with-check-option-violation>
1.7.3 - ODBC-specific extensions to the diagnostic protocol
native-error-code
column-number
row-number
1.7.4 - ODBC-specific diagnostic classes
<odbc-invalid-connection-string-attribute>
<odbc-error-in-row>
<odbc-option-value-changed>
<odbc-attempt-to-fetch-before-result-set-returned-the-first-rowset>
<odbc-fractional-truncation>
<odbc-error-saving-file-dsn>
<odbc-invalid-keyword>
<odbc-invalid-use-of-default-parameter>
<odbc-communication-link-failure>
<odbc-insert-value-list-does-not-match-column-list>
<odbc-invalid-cursor-state>
<odbc-transaction-state>
<odbc-transaction-still-active>
<odbc-transaction-is-rolledback>
<odbc-base-table-or-view-already-exists>
<odbc-base-table-or-view-not-found>
<odbc-index-already-exists>
<odbc-index-not-found>
<odbc-column-already-exists>
<odbc-column-not-found>
<odbc-general-error>
<odbc-memory-allocation-error>
<odbc-invalid-application-buffer-type>
<odbc-invalid-sql-data-type>
<odbc-associated-statement-is-not-prepared>
<odbc-operation-canceled>
<odbc-invalid-use-of-null-pointer>
<odbc-function-sequence-error>
<odbc-attribute-cannot-be-set-now>
<odbc-invalid-transaction-operation-code>
<odbc-memory-management-error>
<odbc-limit-on-the-number-of-handles-exceeded>
<odbc-no-cursor-name-available>
<odbc-cannot-modify-an-implementation-row-descriptor>
<odbc-invalid-use-of-an-automatically-allocated-descriptor-handle>
<odbc-server-declined-cancel-request>
<odbc-non-character-and-non-binary-data-sent-in-pieces>
<odbc-attempt-to-concatenate-a-null-value>
<odbc-inconsistent-descriptor-information>
<odbc-invalid-attribute-value>
<odbc-invalid-string-or-buffer-length>
<odbc-invalid-descriptor-field-identifier>
<odbc-invalid-attribute-option-identifier>
<odbc-invalid-parameter-number>
<odbc-function-type-out-of-range>
<odbc-invalid-information-type>
<odbc-column-type-out-of-range>
<odbc-scope-type-out-of-range>
<odbc-nullable-type-out-of-range>
<odbc-uniqueness-option-type-out-of-range>
<odbc-accuracy-option-type-out-of-range>
<odbc-invalid-retrieval-code>
<odbc-invalid-precision-or-scale-value>
<odbc-invalid-parameter-type>
<odbc-fetch-type-out-of-range>
<odbc-row-value-out-of-range>
<odbc-invalid-cursor-position>
<odbc-invalid-driver-completion>
<odbc-invalid-bookmark-value>
<odbc-optional-feature-not-implemented>
<odbc-connection-timeout-expired>
<odbc-driver-does-not-support-this-function>
<odbc-data-source-name-not-found>
<odbc-specified-driver-could-not-be-loaded>
<odbc-driver-SQLAllocHandle-on-SQL-HANDLE-ENV-failed>
<odbc-driver-SQLAllocHandle-on-SQL-HANDLE-DBC-failed>
<odbc-driver-SQLSetConnectAttr-failed>
<odbc-no-data-source-or-driver-specified>
<odbc-dialog-failed>
<odbc-unable-to-load-translation-dll>
<odbc-data-source-name-too-long>
<odbc-driver-name-too-long>
<odbc-DRIVER-keyword-syntax-error>
<odbc-invalid-name-of-file-DSN>
<odbc-corrupt-file-data-source>
<odbc-trace-file-error>
1.8 - Database introspection
1.8.1 - Database objects and integrity constraints
<database-object>
database-object-name
1.8.2 - Catalogs
<catalog>
catalogs
1.8.3 - Schema
<schema>
1.8.4 - Tables
<sql-table>
indexes
1.8.5 - Columns
<column>
domain
nullable?
default-value
1.8.6 - Indexes
<index>
indexed-table
fields
unique-index?
2 - Functional Developer's COM, OLE, and ActiveX Libraries
2.1 - Introduction
2.1.1 - About COM
2.1.2 - About OLE and compound documents
2.1.3 - About OLE Automation
2.1.4 - About OLE (ActiveX) controls
2.1.5 - Terminology
2.1.6 - OLE/COM example: using compound documents
2.2 - Overview of OLE/COM and the Functional Developer API
2.2.1 - COM interfaces and methods
2.2.2 - COM objects and classes
2.2.3 - Representing interfaces
2.2.4 - Dispatch interfaces
2.2.5 - GUIDs: Globally unique identifiers
2.2.6 - Type information and type libraries
2.3 - Registering OLE/COM software
2.4 - About the example OLE/COM programs
2.4.1 - OLE examples
2.4.2 - Win32 API OLE examples
2.4.3 - Building and registering the examples
2.4.4 - Running the examples
2.5 - Making GUIDs
2.5.1 - Creating GUID numbers
2.5.2 - Making a GUID instance
2.6 - Supported interfaces
2.7 - Libraries in the Functional Developer OLE/COM API
2.7.1 - High-level DUIM integration
2.7.2 - Low-level FFI libraries
2.7.3 - Intermediate layer libraries
2.7.4 - Basic COM integration and utilities
2.8 - Choosing the right OLE/COM libraries
2.8.1 - For compound document server applications
2.8.2 - For compound document container applications
2.8.3 - For OLE controls
2.8.4 - For OLE control container applications
2.8.5 - For OLE Automation servers and controllers
2.8.6 - For OLE dialogs
3 - Compound Documents and OLE Controls in DUIM
3.1 - Introduction
3.2 - About the DUIM-OLE-Server library
3.2.1 - Limitations of the DUIM-OLE-Server library
3.2.2 - Modules exported from DUIM-OLE-Server
3.2.3 - A note about compound document container applications and DUIM
3.3 - About the DUIM-OLE-Control library
3.3.1 - Modules exported from DUIM-OLE-Control
3.3.2 - A note about OLE control container applications and DUIM
3.4 - Building a compound document server in DUIM
3.4.1 - Differences from ordinary DUIM applications
3.4.2 - Running your DUIM-OLE-Server application
3.4.3 - Registering server applications with Windows
3.4.4 - Specifying menus for in-place activation
3.4.5 - Skeleton application
3.4.6 - Example DUIM-OLE-Server application
3.5 - Building an OLE control in DUIM
3.5.1 - Differences from implementing OLE compound document servers
3.5.2 - Getting the control container's ambient properties
3.5.3 - Skeleton application
3.5.4 - Example DUIM-OLE-Control application
3.6 - The DUIM-OLE-SERVER module
<embeddable-frame>
frame-container-menus
frame-container-name
frame-embedded-sheet
frame-embedded-size
frame-embedded-size-requested
frame-init-new-object
frame-in-place-active?
frame-ole-object
frame-ole-object-class
note-embedded-data-changed
note-embedded-region-changed
note-in-place-activation
note-in-place-deactivation
save-frame-to-storage
load-frame-from-storage
3.7 - The DUIM-OLE-CONTROL module
initialize-ole-control
max-storage-size
<ocx-dispatch>
ocx-frame
3.7.1 - Getting the ambient properties of the control's container
3.7.2 - Automatically generated control properties
3.8 - Low-level DUIM-OLE-Control features
<DUIM-OCX>
4 - OLE Automation
4.1 - Introduction
4.2 - About the OLE-Automation library
4.3 - Overview of OLE Automation
4.3.1 - Dispinterfaces, properties, and dispatch methods
4.3.2 - Automation servers and COM objects
4.3.3 - Type libraries and type information
4.3.4 - Class factories
4.4 - Example of Automation
4.5 - Building an Automation controller application
4.5.1 - Initializing OLE Automation
4.5.2 - Connecting to an Automation server application
4.5.3 - Getting Dispatch IDs for properties and dispatch methods
4.5.4 - Getting and setting the value of a dispatch property
4.5.5 - Calling dispatch methods
4.5.6 - Releasing the dispinterface
4.5.7 - Closing OLE Automation down
4.5.8 - Skeleton OLE Automation controller
4.5.9 - Controllers using more than one dispinterface
4.6 - Building an Automation server application
4.6.1 - Overview
4.6.2 - Defining the Dylan class representing a dispinterface
4.6.3 - Defining type information for the dispinterface
4.6.4 - Defining dispatch methods for the dispinterface
4.6.4.1 - Dispatch method argument requirements
4.6.4.2 - Dispatch method return value requirements
4.6.5 - Dispatch method argument and return value types
4.6.6 - Defining type information for dispatch methods
4.6.7 - The DEFINE DISPATCH-INTERFACE macro
4.6.8 - Retaining arguments sent to dispatch methods
4.6.9 - Cleaning up with TERMINATE
4.6.10 - Servers providing more than one dispinterface
4.6.11 - Local server initialization
4.6.12 - Registering an Automation server
4.6.13 - Skeleton OLE Automation server
4.6.14 - In-process server initialization
4.7 - Error reporting
4.8 - Datatypes
4.9 - Memory management issues
4.10 - Internationalization
4.11 - Low-level OLE Automation API
4.12 - The OLE-AUTOMATION module
<LPDISPATCH>
<BSTR>
<ole-array>
<ole-vector>
<class-factory>
<simple-dispatch>
<disp-type-info>
<variable-description>
<constant-description>
<function-description>
<coclass-type-info>
<simple-component-object>
<component-interface-description>
OLE-initialize
OLE-uninitialize
with-OLE
with-dispatch-interface
copy-automation-value
get-id-of-name
get-property
get-indexed-property
set-property
call-simple-method
pass-as
out-ref
inout-ref
arg-spec-value
create-dispatch
make-object-factory
revoke-registration
with-class-factory
ole-array-type
HRESULT-FROM-WIN32
OLE-util-in-process-startup?
OLE-util-automation?
OLE-util-file-arg
OLE-util-register-only?
register-automation-server
register-type-library
in-process-automation-server
pass-as
out-ref
inout-ref
arg-spec-value
5 - Macros for Defining Custom Interfaces
5.1 - Introduction
5.2 - Overview
5.3 - Macros for defining custom interfaces
define custom-interface
define coclass
define vtable-interface
define dispatch-client
define dispatch-interface
define dual-interface
6 - The OLE-Server Library
6.1 - Introduction
6.2 - About compound documents
6.3 - Basics of writing OLE compound document servers
6.4 - Example
6.5 - Implementing local servers
6.6 - Implementing in-process servers
6.7 - The OLE-SERVER module
6.7.1 - Framework classes and definition macro
<ole-server-framework>
<ole-in-process-server>
define COM-interface
6.7.2 - Required methods for compound document servers
OLE-part-doc-window
OLE-part-open-out
OLE-part-draw-metafile
terminate
6.7.3 - More required methods (persistent storage)
OLE-part-Create-Streams
OLE-part-Open-Streams
OLE-part-Release-Streams
OLE-part-Save-To-Storage
OLE-part-Load-From-Storage
6.7.4 - Self-registration for local server applications
OLE-util-register-only?
register-ole-server
6.7.5 - Optional methods for compound document servers
OLE-part-init-new
OLE-part-dirty?
OLE-part-title
OLE-part-set-focus
OLE-part-requested-size
OLE-part-change-size
OLE-part-position-window
OLE-part-hide
OLE-part-in-place-activated
OLE-part-UI-activated
OLE-part-in-place-deactivated
OLE-part-UI-deactivated
OLE-part-insert-menus
OLE-part-release-menu
OLE-part-command-window
OLE-part-accelerators
OLE-part-toolbar-window
OLE-part-get-data
OLE-part-set-data
OLE-part-formats-for-get
OLE-part-formats-for-set
OLE-part-enable-dialog
6.7.6 - Miscellaneous OLE-SERVER module classes and functions
<storage-istream>
istream-rewrite
istream-write-integer
istream-write-int16
istream-write-float
istream-write-string
istream-read-integer
istream-read-int16
istream-read-float
istream-read-string
OLE-util-Create-Stream
OLE-util-open-stream
OLE-util-set-status-text
OLE-util-started-by-OLE?
OLE-util-in-process-startup?
OLE-util-container-name
OLE-util-translate-accelerator
OLE-util-current-size
OLE-util-HIMETRIC-size
OLE-util-close-server
OLE-util-in-place-active?
OLE-util-view-changed
revoke-registration
<class-factory>
6.7.7 - OLE API hooks
in-place-frame-info
container-IOleInPlaceFrame
server-IOleObject
container-parent-window
hatch-window
6.7.8 - Initializing and registering in-process compound document servers
initialize-ole-server
6.7.9 - Persistent storage for in-process compound document servers
OLE-part-max-save-size
OLE-part-Save-To-Stream
OLE-part-Load-From-Stream
OLE-part-init-new
OLE-part-dirty?-setter
6.7.10 - Other required methods for in-process servers
OLE-part-draw
7 - The OLE-Control-Framework Library
7.1 - Introduction
7.2 - OLE Controls
7.2.1 - Mnemonic keys
7.2.2 - Ambient properties
7.3 - The OLE-CONTROL-FRAMEWORK module
<OLE-control-framework>
initialize-ole-control
OLE-part-mnemonics
OLE-part-on-mnemonic
OLE-util-key-change
OLE-util-on-focus
freeze-events?
freeze-UI?
OLE-util-locale
container-IDispatch
OLE-part-ambient-properties
OLE-part-set-ambient-property
OLE-util-translate-color
8 - Basic COM Integration
8.1 - Introduction
8.2 - Basic COM interface and data representation in Dylan
<LPUNKNOWN>
8.3 - GUID utilities
<REFGUID>
<REFCLSID>
make-GUID
as <string> GUID => string
as <REFGUID> string => GUID
8.4 - COM IUnknown interface methods
AddRef
Release
QueryInterface
8.5 - Error handling
<ole-error>
ole-error
check-ole-status
ole-error-status
ole-error-context
ole-error-instance
ole-error-args
9 - OLE FFI Facilities
9.1 - Introduction
9.2 - Dylan and Win32 library correspondences
9.3 - C-to-Dylan name-mapping scheme
9.4 - How to use the Dylan libraries
Index

OLE, COM, ActiveX and DBMS Reference - 31 MAR 2000

Next Previous Top Index