|   | ![[ Previous ]](navbprev.gif)  ![[ Contents ]](navbhome.gif)  ![[ Index ]](navbhelp.gif)  ![[ Next ]](navbnext.gif)  | 
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);
        }
    }