Main Page | Modules | Class List | Directories | File List | Class Members | File Members | Related Pages

Memory allocation
[LibTDS API]

Allocate or free resources. More...

Defines

#define SQLS_ENTRY(number, state)   case number: p = state; break

Functions

static void _tds_param_free (TDSCOLUMN *col)
static void _tds_row_free (TDSRESULTINFO *res_info, unsigned char *row)
BCPCOLDATA * tds_alloc_bcp_column_data (int column_size)
char * tds_alloc_client_sqlstate (int msgno)
static TDSCOMPUTEINFOtds_alloc_compute_result (int num_cols, int by_cols)
 Allocate memory for storing compute info return NULL on out of memory.
TDSCOMPUTEINFO ** tds_alloc_compute_results (TDSSOCKET *tds, int num_cols, int by_cols)
int tds_alloc_compute_row (TDSCOMPUTEINFO *res_info)
TDSCONNECTION * tds_alloc_connection (TDSLOCALE *locale)
 Allocate space for configure structure and initialize with default values.
TDSCONTEXT * tds_alloc_context (void *parent)
TDSCURSORtds_alloc_cursor (TDSSOCKET *tds, const char *name, TDS_INT namelen, const char *query, TDS_INT querylen)
TDSDYNAMICtds_alloc_dynamic (TDSSOCKET *tds, const char *id)
 Allocate a dynamic statement.
TDSLOCALE * tds_alloc_locale (void)
TDSLOGIN * tds_alloc_login (void)
char * tds_alloc_lookup_sqlstate (TDSSOCKET *tds, int msgno)
void * tds_alloc_param_data (TDSCOLUMN *curparam)
 Allocate data for a parameter.
TDSPARAMINFOtds_alloc_param_result (TDSPARAMINFO *old_param)
 Adds a output parameter to TDSPARAMINFO.
TDSRESULTINFOtds_alloc_results (int num_cols)
int tds_alloc_row (TDSRESULTINFO *res_info)
 Allocate space for row store return NULL on out of memory.
TDSSOCKETtds_alloc_socket (TDSCONTEXT *context, int bufsize)
void tds_cursor_deallocated (TDSSOCKET *tds, TDSCURSOR *cursor)
void tds_free_all_results (TDSSOCKET *tds)
void tds_free_bcp_column_data (BCPCOLDATA *coldata)
static void tds_free_compute_result (TDSCOMPUTEINFO *comp_info)
static void tds_free_compute_results (TDSSOCKET *tds)
void tds_free_connection (TDSCONNECTION *connection)
void tds_free_context (TDSCONTEXT *context)
void tds_free_dynamic (TDSSOCKET *tds, TDSDYNAMIC *dyn)
 Frees dynamic statement and remove from TDS.
static void tds_free_env (TDSSOCKET *tds)
void tds_free_input_params (TDSDYNAMIC *dyn)
 Frees all allocated input parameters of a dynamic statement.
void tds_free_locale (TDSLOCALE *locale)
void tds_free_login (TDSLOGIN *login)
void tds_free_msg (TDSMESSAGE *message)
void tds_free_param_result (TDSPARAMINFO *param_info)
 Delete latest parameter.
void tds_free_param_results (TDSPARAMINFO *param_info)
void tds_free_results (TDSRESULTINFO *res_info)
void tds_free_row (TDSRESULTINFO *res_info, unsigned char *row)
void tds_free_socket (TDSSOCKET *tds)
TDSSOCKETtds_realloc_socket (TDSSOCKET *tds, int bufsize)
void tds_release_cursor (TDSSOCKET *tds, TDSCURSOR *cursor)

Variables

static const unsigned char defaultcaps []

Detailed Description

Allocate or free resources.

Allocation can fail only on out of memory. In such case they return NULL and leave the state as before call. Mainly function names are in the form tds_alloc_XX or tds_free_XXX. tds_alloc_XXX functions allocate structures and return pointer to allocated data while tds_free_XXX take structure pointers and free them. Some functions require additional parameters to initialize structure correctly. The main exception are structures that use reference counting. These structures have tds_alloc_XXX functions but instead of tds_free_XXX use tds_release_XXX.


Function Documentation

TDSCONNECTION* tds_alloc_connection TDSLOCALE *  locale  ) 
 

Allocate space for configure structure and initialize with default values.

Parameters:
locale locale information (copied to configuration information)
Returns:
allocated structure or NULL if out of memory

TDSDYNAMIC * tds_alloc_dynamic TDSSOCKET tds,
const char *  id
 

Allocate a dynamic statement.

Parameters:
tds the connection within which to allocate the statement.
id a character label identifying the statement.
Returns:
a pointer to the allocated structure (NULL on failure).
tds_alloc_dynamic is used to implement placeholder code under TDS 5.0

void* tds_alloc_param_data TDSCOLUMN curparam  ) 
 

Allocate data for a parameter.

Parameters:
curparam parameter to retrieve size information
Returns:
NULL on failure or new data

TDSPARAMINFO * tds_alloc_param_result TDSPARAMINFO old_param  ) 
 

Adds a output parameter to TDSPARAMINFO.

Parameters:
old_param a pointer to the TDSPARAMINFO structure containing the current set of output parameter, or NULL if none exists.
Returns:
a pointer to the new TDSPARAMINFO structure.
tds_alloc_param_result() works a bit differently than the other alloc result functions. Output parameters come in individually with no total number given in advance, so we simply call this func every time with get a TDS_PARAM_TOKEN and let it realloc the columns struct one bigger. tds_free_all_results() usually cleans up after us.

void tds_free_dynamic TDSSOCKET tds,
TDSDYNAMIC dyn
 

Frees dynamic statement and remove from TDS.

Parameters:
tds state information for the socket and the TDS protocol
dyn dynamic statement to be freed.

void tds_free_input_params TDSDYNAMIC dyn  ) 
 

Frees all allocated input parameters of a dynamic statement.

Parameters:
dyn the dynamic statement whose input parameter are to be freed
tds_free_input_params frees all parameters for the give dynamic statement


Variable Documentation

const unsigned char defaultcaps[] [static]
 

Initial value:

 { 
     
        0x01, 0x09, 0x00, 0x08, 0x0E, 0x6D, 0x7F, 0xFF, 0xFF, 0xFF, 0xFE,
        0x02, 0x09, 0x00, 0x00, 0x00, 0x00, 0x02, 0x68, 0x00, 0x00, 0x00
}


Generated on Wed May 7 19:22:11 2008 for FreeTDS API by  doxygen 1.4.1