Main Page Modules Compound List File List Compound Members File Members Related Pages

# Query
[LibTDS API]

Function to handle query. More...

## Defines
#define | tds_convert_string_free(original, converted) do { if (original != converted) free((char*) converted); } while(0)
## Functions
int | tds_submit_query (TDSSOCKET *tds, const char *query)
| tds_submit_query() sends a language string to the database server for processing.
int | tds_submit_query_params (TDSSOCKET *tds, const char *query, TDSPARAMINFO *params)
| tds_submit_query_params() sends a language string to the database server for processing.
int | tds_submit_queryf (TDSSOCKET *tds, const char *queryf,...)
const char * | tds_skip_quoted (const char *s)
| Skip quoting string (like 'sfsf', "dflkdj" or [dfkjd]).
const char * | tds_next_placeholders (const char *start)
| Get position of next placeholders.
int | tds_count_placeholders (const char *query)
| Count the number of placeholders in query.
int | tds_submit_prepare (TDSSOCKET *tds, const char *query, const char *id, TDSDYNAMIC **dyn_out, TDSPARAMINFO *params)
| tds_submit_prepare() creates a temporary stored procedure in the server.
int | tds_submit_execdirect (TDSSOCKET *tds, const char *query, TDSPARAMINFO *params)
| Currently works with TDS 5.0 and TDS7+.
int | tds_submit_execute (TDSSOCKET *tds, TDSDYNAMIC *dyn)
| tds_submit_execute() sends a previously prepared dynamic statement to the server.
int | tds_get_dynid (TDSSOCKET *tds, char **id)
| Get an id for dynamic query based on TDS information.
int | tds_submit_unprepare (TDSSOCKET *tds, TDSDYNAMIC *dyn)
| Send a unprepare request for a prepared query.
int | tds_submit_rpc (TDSSOCKET *tds, const char *rpc_name, TDSPARAMINFO *params)
| tds_submit_rpc() call a RPC from server.
int | tds_send_cancel (TDSSOCKET *tds)
| tds_send_cancel() sends an empty packet (8 byte header only) tds_process_cancel should be called directly after this.
int | tds_quote_id (TDSSOCKET *tds, char *buffer, const char *id, int idlen)
| Quote an id.
int | tds_quote_string (TDSSOCKET *tds, char *buffer, const char *str, int len)
| Quote a string.
int | tds_cursor_declare (TDSSOCKET *tds, TDS_INT client_cursor_id, int *something_to_send)
int | tds_cursor_open (TDSSOCKET *tds, TDS_INT client_cursor_id, int *something_to_send)
int | tds_cursor_setrows (TDSSOCKET *tds, TDS_INT client_cursor_id, int *something_to_send)
int | tds_cursor_fetch (TDSSOCKET *tds, TDS_INT client_cursor_id)
int | tds_cursor_close (TDSSOCKET *tds, TDS_INT client_cursor_id)
int | tds_cursor_dealloc (TDSSOCKET *tds, TDS_INT client_cursor_id)

## Detailed Description

Function to handle query.

## Function Documentation

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

  | 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

const char* tds_next_placeholders | ( | const char * | start | ) |

  | Get position of next placeholders. Parameters:
  start | pointer to part of query to search
Returns: next placaholders or NULL if not found

int tds_quote_id | ( | TDSSOCKET * | tds,
|  | char * | buffer,
|  | const char * | id,
|  | int | idlen
| ) |

  | Quote an id. Parameters:
  tds | state information for the socket and the TDS protocol
  buffer | buffer to store quoted id. If NULL do not write anything (useful to compute quote length)
  id | id to quote
  idlen | id length
Returns: written chars (not including needed terminator)

int tds_quote_string | ( | TDSSOCKET * | tds,
|  | char * | buffer,
|  | const char * | str,
|  | int | len
| ) |

  | Quote a string. Parameters:
  tds | state information for the socket and the TDS protocol
  buffer | buffer to store quoted id. If NULL do not write anything (useful to compute quote length)
  str | string to quote (not necessary null-terminated)
  len | length of string (-1 for null terminated)
Returns: written chars (not including needed terminator)

int tds_send_cancel | ( | TDSSOCKET * | tds | ) |

  | tds_send_cancel() sends an empty packet (8 byte header only) tds_process_cancel should be called directly after this. Parameters:
  tds | state information for the socket and the TDS protocol

const char* tds_skip_quoted | ( | const char * | s | ) |

  | Skip quoting string (like 'sfsf', "dflkdj" or [dfkjd]). Parameters:
  s | pointer to first quoting character (should be '," or [)
Returns: character after quoting

int tds_submit_execdirect | ( | TDSSOCKET * | tds,
|  | const char * | query,
|  | TDSPARAMINFO * | params
| ) |

  | Currently works with TDS 5.0 and TDS7+. Parameters:
  tds | state information for the socket and the TDS protocol
  query | language query with given placeholders (?)
  params | parameters to send
Returns: TDS_FAIL or TDS_SUCCEED

int tds_submit_execute | ( | TDSSOCKET * | tds,
|  | TDSDYNAMIC * | dyn
| ) |

  | tds_submit_execute() sends a previously prepared dynamic statement to the server. Currently works with TDS 5.0 or TDS7+ Parameters:
  tds | state information for the socket and the TDS protocol
  dyn | dynamic proc to execute. Must build from same tds.

int tds_submit_prepare | ( | TDSSOCKET * | tds,
|  | const char * | query,
|  | const char * | id,
|  | TDSDYNAMIC ** | dyn_out,
|  | TDSPARAMINFO * | params
| ) |

  | tds_submit_prepare() creates a temporary stored procedure in the server. Under TDS 4.2 dynamic statements are emulated building sql command Parameters:
  tds | state information for the socket and the TDS protocol
  query | language query with given placeholders (?)
  id | string to identify the dynamic query. Pass NULL for automatic generation.
  dyn_out | will receive allocated TDSDYNAMIC*. Any older allocated dynamic won't be freed, Can be NULL.
  params | parameters to use. It can be NULL even if parameters are present. Used only for TDS7+
Returns: TDS_FAIL or TDS_SUCCEED

int tds_submit_query | ( | TDSSOCKET * | tds,
|  | const char * | query
| ) |

  | tds_submit_query() sends a language string to the database server for processing. TDS 4.2 is a plain text message with a packet type of 0x01, TDS 7.0 is a unicode string with packet type 0x01, and TDS 5.0 uses a TDS_LANGUAGE_TOKEN to encapsulate the query and a packet type of 0x0f. Parameters:
  tds | state information for the socket and the TDS protocol
  query | language query to submit
Returns: TDS_FAIL or TDS_SUCCEED

int tds_submit_query_params | ( | TDSSOCKET * | tds,
|  | const char * | query,
|  | TDSPARAMINFO * | params
| ) |

  | tds_submit_query_params() sends a language string to the database server for processing. TDS 4.2 is a plain text message with a packet type of 0x01, TDS 7.0 is a unicode string with packet type 0x01, and TDS 5.0 uses a TDS_LANGUAGE_TOKEN to encapsulate the query and a packet type of 0x0f. Parameters:
  tds | state information for the socket and the TDS protocol
  query | language query to submit
  params | parameters of query
Returns: TDS_FAIL or TDS_SUCCEED

int tds_submit_rpc | ( | TDSSOCKET * | tds,
|  | const char * | rpc_name,
|  | TDSPARAMINFO * | params
| ) |

  | tds_submit_rpc() call a RPC from server. Output parameters will be stored in tds->param_info Parameters:
  tds | state information for the socket and the TDS protocol
  rpc_name | name of RPC
  params | parameters informations. NULL for no parameters

int tds_submit_unprepare | ( | TDSSOCKET * | tds,
|  | TDSDYNAMIC * | dyn
| ) |

  | Send a unprepare request for a prepared query. Parameters:
  tds | state information for the socket and the TDS protocol
  dyn | dynamic query
Returns: TDS_SUCCEED or TDS_FAIL