FreeTDS API

- Main Page
- Related Pages
- Modules
- Classes
- Files

All Classes Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Macros | Functions | Variables
Memory allocation
LibTDS API

Allocate or free resources. More...

## Macros

#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)
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)
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)
void * | tds_alloc_param_data (TDSCOLUMN *curparam)
| Allocate data for a parameter.
TDSPARAMINFO * | tds_alloc_param_result (TDSPARAMINFO *old_param)
| Adds a output parameter to TDSPARAMINFO.
TDSRESULTINFO * | tds_alloc_results (int num_cols)
int | 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_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)
static char * | tds_get_dynid (TDSSOCKET *tds, char *id)
| Get an id for dynamic query based on TDS information.
static void | tds_param_free (TDSCOLUMN *col)
TDSSOCKET * | tds_realloc_socket (TDSSOCKET *tds, size_t bufsize)
void | tds_release_cursor (TDSSOCKET *tds, TDSCURSOR *cursor)
static void | tds_row_free (TDSRESULTINFO *res_info, unsigned char *row)
static int | winsock_initialized (void)

## Variables

static const unsigned char | defaultcaps []
static volatile int | inc_num = 1

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

static char* tds_get_dynid | ( | TDSSOCKET * | tds,
|  | char * | id
| ) |  |

static

Get an id for dynamic query based on TDS information.

Parameters

  tds | state information for the socket and the TDS protocol

Returns
  TDS_FAIL or TDS_SUCCEED

## Variable Documentation

const unsigned char defaultcaps[]

static

Initial value:
= {
0x01, 0x09, 0x00, 0x08, 0x0F, 0x6D, 0x7F, 0xFF, 0xFF, 0xFF, 0xFE,
0x02, 0x09, 0x00, 0x00, 0x00, 0x00, 0x02, 0x68, 0x00, 0x00, 0x00
}