Close a connection to the database.
void Ns_PdDbClose (void *handle);
This function closes the database. It should not free the database handle. If the close operation is successful, this function should call Ns_PdSendString with OK_STATUS. On failure, the function should use Ns_PdSendString to return an error string.
/* Things italicized would be your DBMS-specific structures and calls. */ void Ns_PdDbClose(void *handle) { DBMSState *state = (DBMSState *) handle; int status = NS_OK; Ns_PdLog(Trace, "close:"); if (state->connected) { Ns_PdLog(Notice, "Closing database connection: %s", state->datasource); if (DBMSClose(state) == DBMSState_ERROR) { Ns_PdLog(Error, "Error closing connection: %s\n", state->datasource); status = NS_ERROR; } else { status = NS_OK; } state->connected = 0; if (state->datasource != NULL) { free(state->datasource); } if (state->user != NULL) { free(state->user); } if (state->password != NULL) { free(state->password); } if (state->param != NULL) { free(state->param); } state->connection = NULL; } else { Ns_PdLog(Notice, "DbClose: not connected."); } status == NS_OK ? Ns_PdSendString(OK_STATUS) : Ns_PdSendException(state->exceptionCode, state->exceptionMsg); }