Chapter 5 C Routines Reference
Retrieve a connection from a specified cache or from any cache that matches a specified set of values for server, user name, password, and connectivity library.
JagStatus JagCmGetConnection (
JagCmCache *cache,
SQLCHAR *username,
SQLCHAR *password,
SQLCHAR *server,
SQLCHAR *con_lib,
SQLPOINTER *connection,
JagCmOpt opt
);
cache
The address of a JagCmCache cache handle variable. The input value determines how the parameter is used:
username
When *cache is NULL, the user name for connections in the desired cache. Ignored when *cache is not NULL.
password
When *cache is NULL, the password used by connections in the desired cache. Ignored when *cache is not NULL.
server
When *cache is NULL, the name of the server to which cached connections are made. Ignored when *cache is not NULL.
con_lib
When *cache is NULL, indicates a string value indicating the connectivity library used by connections in the cache. Ignored when *cache is not NULL.
When *cache is NULL, allowable values for con_lib are:
con_lib value |
To indicate |
---|---|
"CTLIB_110" |
Sybase Open Client Client-Library. |
"ODBC" |
An ODBC implementation library. |
"OCI_7" |
Oracle Call Interface 7.x |
"OCI_8" |
Oracle Call Interface 8.x |
connection
The address of a variable that receives the connection handle. Declare a variable of the appropriate type, as follows:
On successful return, the connection will be open and in a state that allows commands to be sent to the remote server.
opt
A symbolic value that indicates the desired behavior if all connections in a cache are in use. Allowable values are:
Value of opt |
JagCmGetConnection behavior when all connections are in use |
---|---|
JAG_CM_NOWAIT |
Fails with an error if no connection can be returned. |
JAG_CM_WAIT |
Does not return until a connection becomes available. |
JAG_CM_FORCE |
Allocates and opens a new connection. The new connection is not cached and will be destroyed when JagCmReleaseConnection is called. |
JagCmGetConnection returns a connection that was allocated and opened with the specified connectivity library and that has matching values for server, user name, and password.
JagCmGetConnection behaves differently depending on whether the *cache parameter is NULL.
If *cache is NULL, CmGetConnection looks for a cache with settings that match the values of the username, password, server, and con_lib parameters. If a cache is found and a connection is available, a connection is returned from that cache and *cache is set to reflect the cache from which the connection came. If no cache is found, then a connection structure is allocated, a connection is opened using the specified connectivity library and the new connection structure is returned. If a cache was found, con_lib is ignored. The following table summarizes the JagCmGetConnection call when *cache is NULL.
A connection obtained with JagCmGetConnection is either cached or uncached.
A cached connection is one that was taken from a configured connection cache. When JagCmGetConnection returns a cached connection, it sets *cache to indicate the cache to which the connection belongs. Cached connections must be released to the cache from which they were taken: pass the cache reference obtained in the JagCmGetConnection call when calling JagCmReleaseConnection.
An uncached connection is one that was not taken from a cache. JagCmGetConnection returns an uncached connection in either of the following cases:
When a cache handle is passed in *cache, JagCmGetConnection looks for an available connection in that cache. If none is available, then the value of the opt parameter determines whether the call waits for a connection to be released, fails, or opens a new, uncached connection.
Copyright © 2000 Sybase, Inc. All rights reserved. |
![]() |