PATH  WebObjects 4.0 Documentation > ODBCEOAdaptor Reference



ODBCAdaptor

Inherits From:
EOAdaptor : NSObject

Declared in: ODBCEOAdaptor/ODBCAdaptor.h


Class Description

An ODBCAdaptor represents a single connection to an ODBC database server, and is responsible for keeping login and model information, performing ODBC-specific formatting of SQL expressions, and reporting errors.

ODBC (Open Data Base Connectivity) defines a standard interface that Windows applications can use to access any data source. Unlike the other Enterprise Objects Frameworks adaptors that support a single type of database, the ODBC adaptor supports any data source that has an ODBC driver. Consequently, in addition to having standard adaptor features, the ODBC adaptor also manages information relating to the driver and to the data types defined by the data source the driver supports.

The ODBCAdaptor class doesn't support nested transactions.


Method Types

Mapping external types to internal types
+ assignExternalTypeForAttribute:
+ externalTypeForOdbcType:model:
+ externalTypesWithModel:
+ getOdbcInfoWithConnectionDictionary:
+ internalTypeForExternalType:model:
+ odbcTypeForExternalType:model:
+ odbcTypeForStringRepresentation:
+ resetOdbcInfoWithConnectionDictionary:
+ stringRepresentationForOdbcType:
Access information in the connection dictionary
+ driverInfoForModel:
+ typeInfoForModel:
- driverInfo
- typeInfo
Testing the connection dictionary
- assertConnectionDictionaryIsValid
- defaultExpressionClass
- isValidQualifierType:model:
- odbcConnectionString
- odbcEnvironment

Class Methods


assignExternalTypeForAttribute:

+ (void)assignExternalTypeForAttribute:(EOAttribute *)attribute

Sets the external information for attribute based on the internal type, precision, and width.


driverInfoForModel:

+ (NSDictionary *)driverInfoForModel:(EOModel *)model

Returns an NSDictionary containing the driver information cached in the connection dictionary of model. If the information is not yet cached in model, connects to the database to get it.

See also: typeInfoForModel:, - driverInfo, - typeInfo


externalTypeForOdbcType:model:

+ (NSString *)externalTypeForOdbcType:(int)type model:(EOModel *)model

Returns the external type that represents the best match for an ODBC type in model.


externalTypesWithModel:

+ (NSArray *)externalTypesWithModel:(EOModel *)model

Overrides the EOAdaptor method externalTypesWithModel: to return the ODBC database types.

See also: internalTypeForExternalType:model:


getOdbcInfoWithConnectionDictionary:

+ (NSDictionary *)getOdbcInfoWithConnectionDictionary:(NSDictionary *)connectionDictionary

Sets up the typeInfo and driverInfo dictionaries in connectionDictionary, and returns an updated connection dictionary. Creates an ODBCAdaptor, ODBCContext, and ODBCChannel, and connects to the database to get the information for the typeInfo and driverInfo dictionaries.


internalTypeForExternalType:model:

+ (NSString *)internalTypeForExternalType:(NSString *)externalType model:(EOModel *)model

Overrides the EOAdaptor method internalTypeForExternalType:model: to return the name of the Objective-C class used to represent values stored in the database as externalType.

See also: externalTypesWithModel:


odbcTypeForExternalType:model:

+ (NSString *)odbcTypeForExternalType:(NSString *)externalType model:(EOModel *)model

Returns the ODBC type for externalType, as defined in the typeInfo dictionary in model's connection dictionary.


odbcTypeForStringRepresentation:

+ (int)odbcTypeForStringRepresentation:(NSString *)type

Returns the ODBC type (such as SQL_CHAR) for type (such as @"CHAR"). The method stringRepresentationForOdbcType: performs the opposite function: returning a string for a specified ODBC type. These methods are used in conjunction to encode ODBC types in the typeInfo dictionary.


resetOdbcInfoWithConnectionDictionary:

+ (NSDictionary *)resetOdbcInfoWithConnectionDictionary:(NSDictionary *)connectionDictionary

Removes the typeInfo and driverInfo dictionaries from a copy of connectionDictionary and returns the modified connection dictionary.


stringRepresentationForOdbcType:

+ (NSString *)stringRepresentationForOdbcType:(int)type

Returns the string representation of type-for example, for the type SQL_CHAR this method would return the string @"CHAR". The method odbcTypeForStringRepresentation: performs the opposite function: returning the ODBC type for a specified string. These methods are used in conjunction to encode ODBC types in the typeInfo dictionary.


typeInfoForModel:

+ (NSDictionary *)typeInfoForModel:(EOModel *)model

Returns an NSDictionary containing the type information cached in the connection dictionary of model. If the information is not yet cached in model, connects to the database to get it.

See also: driverInfoForModel:, - driverInfo, - typeInfo


Instance Methods


assertConnectionDictionaryIsValid

- (void)assertConnectionDictionaryIsValid

Determines whether the receiver's connection dictionary is valid. The adaptor uses this method in conjunction with displaying a server login panel. Raises an exception if an error occurs.

Note that this method doesn't open a connection to the database-that happens when the first adaptor channel is sent an openChannel message.


defaultExpressionClass

- (Class)defaultExpressionClass

Returns the ODBCSQLExpression class.


driverInfo

- (NSDictionary *)driverInfo

Returns an NSDictionary containing the driver information cached in the receiver's model's connection dictionary. If the information is not yet cached in the model, connects to the database to get it.

See also: - typeInfo


isValidQualifierType:model:

- (BOOL)isValidQualifierType:(NSString *)typeName model:(EOModel *)model

Returns YES if model's attribute of the type typeName can be used in a qualifier, otherwise returns NO.


odbcConnectionString

- (NSString *)odbcConnectionString

Returns the user name, password, and data source as a string that's used to connect to the database.


odbcEnvironment

- (void *)odbcEnvironment

Returns the ODBC Environment Handle HENV as a void*; to work with it, you must cast it to HENV.


typeInfo

- (NSDictionary *)typeInfo

Returns an NSDictionary containing the type information cached in the receiver's model's connection dictionary. If the information is not yet cached in the model, connects to the database to get it.

See also: - driverInfo, driverInfoForModel:, typeInfoForModel:





Copyright © 1998, Apple Computer, Inc. All rights reserved.