|
|
Flush a connection to the database.
void Ns_PdDbFlush(void *handle);
Flushes any pending data. Usually this function will call Ns_PdDbCancel or something similiar along with any other database specific clean-up routines. If the flush operation is successful, this function should call Ns_PdSendString with an 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_PdDbFlush(void *handle) {
DBMSState *state = (DBMSState *) handle;
int status = NS_OK;
Ns_PdLog(Trace, "flush:");
if (!DBMSActiveState(state)) {
status = DBMSFinish(state);
} else {
Ns_PdLog(Error, "Active transaction aborted (%s)",
state->datasource);
DBMSCancel(state);
DBMSExec(state, "abort transaction;");
DBMSFinish(state);
status = NS_ERROR;
}
if (status == NS_OK) {
Ns_PdSendString(OK_STATUS);
} else {
Ns_PdSendException(state->exceptionCode,
state->exceptionMsg);
}
}