FreeTDS API: Memory allocation

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
BCPCOLDATA * | tds_alloc_bcp_column_data (int column_size)
char * | tds_alloc_client_sqlstate (int msgno)
static TDSCOMPUTEINFO * | tds_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)
unsigned char * | 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)
TDSCURSOR * | tds_alloc_cursor (TDSSOCKET *tds, const char *name, TDS_INT namelen, const char *query, TDS_INT querylen)
TDSDYNAMIC * | tds_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)
TDSPARAMINFO * | tds_alloc_param_result (TDSPARAMINFO *old_param)
| Adds a output parameter to TDSPARAMINFO.
unsigned char * | tds_alloc_param_row (TDSPARAMINFO *info, TDSCOLUMN *curparam)
| Add another field to row.
TDSRESULTINFO * | tds_alloc_results (int num_cols)
unsigned char * | tds_alloc_row (TDSRESULTINFO *res_info)
| Allocate space for row store return NULL on out of memory.
TDSSOCKET * | tds_alloc_socket (TDSCONTEXT *context, int bufsize)
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_cursor (TDSSOCKET *tds, TDSCURSOR *cursor)
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 (const TDSRESULTINFO *res_info, unsigned char *row)
void | tds_free_socket (TDSSOCKET *tds)
TDSSOCKET * | tds_realloc_socket (TDSSOCKET *tds, int bufsize)
## 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.

## 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

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.

unsigned char* tds_alloc_param_row | ( | TDSPARAMINFO * | info,
|  | TDSCOLUMN * | curparam
| ) |

  | Add another field to row. Is assumed that last TDSCOLUMN contain information about this. Update also info structure. Parameters:
  | info | parameters info where is contained row
  | curparam | parameter to retrieve size information
Returns: NULL on failure or new row

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, 0x00, 0x06, 0x6D, 0x7F, 0xFF, 0xFF, 0xFF, 0xFE,
            0x02, 0x09, 0x00, 0x00, 0x00, 0x00, 0x0A, 0x68, 0x00, 0x00, 0x00
    }