SQLRETURN SQLExecDirect( SQLHSTMT hDrvStmt, SQLCHAR *szSqlStr, SQLINTEGER nSqlStr ) { HDRVSTMT hStmt = (HDRVSTMT)hDrvStmt; RETCODE rc; /* SANITY CHECKS */ if( NULL == hStmt ) return SQL_INVALID_HANDLE; sprintf( hStmt->szSqlMsg, "hStmt = $%08lX", hStmt ); logPushMsg( hStmt->hLog, __FILE__, __FILE__, __LINE__, LOG_WARNING, LOG_WARNING, hStmt->szSqlMsg ); /* prepare command */ rc = _Prepare( hDrvStmt, szSqlStr, nSqlStr ); if ( SQL_SUCCESS != rc ) { logPushMsg( hStmt->hLog, __FILE__, __FILE__, __LINE__, LOG_WARNING, LOG_WARNING, "Could not prepare statement" ); return rc; } /* execute command */ rc = _Execute( hDrvStmt ); if ( SQL_SUCCESS != rc ) { logPushMsg( hStmt->hLog, __FILE__, __FILE__, __LINE__, LOG_WARNING, LOG_WARNING, "Problem calling SQLEXecute" ); return rc; } logPushMsg( hStmt->hLog, __FILE__, __FILE__, __LINE__, LOG_INFO, LOG_INFO, "SQL_SUCCESS" ); return SQL_SUCCESS; }
status_t BAlert::Go(BInvoker* invoker) { fInvoker = invoker; _Prepare(); Show(); return B_OK; }
int32 BAlert::Go() { fAlertSem = create_sem(0, "AlertSem"); if (fAlertSem < 0) { Quit(); return -1; } // Get the originating window, if it exists BWindow* window = dynamic_cast<BWindow*>( BLooper::LooperForThread(find_thread(NULL))); _Prepare(); Show(); if (window != NULL) { status_t status; for (;;) { do { status = acquire_sem_etc(fAlertSem, 1, B_RELATIVE_TIMEOUT, kSemTimeOut); // We've (probably) had our time slice taken away from us } while (status == B_INTERRUPTED); if (status == B_BAD_SEM_ID) { // Semaphore was finally nuked in MessageReceived break; } window->UpdateIfNeeded(); } } else { // No window to update, so just hang out until we're done. while (acquire_sem(fAlertSem) == B_INTERRUPTED) { } } // Have to cache the value since we delete on Quit() int32 value = fAlertValue; if (Lock()) Quit(); return value; }
SQLRETURN SQLPrepare( SQLHSTMT hDrvStmt, SQLCHAR *szSqlStr, SQLINTEGER nSqlStrLength ) { return _Prepare( hDrvStmt, szSqlStr, nSqlStrLength ); }