Example #1
0
void pgbuilder::open_table(const table_spec &a_spec) {
	pgcommon::open_table_impl(a_spec);

	cur_row.resize(spec.columns().size());
	cur_insert = std::string("insert_") + spec.name;
	db.prepare(cur_insert, insert_stmt(spec.name, spec.columns().size()));
	cur_work.reset(new pqxx::work(db));
}
Example #2
0
void Parser::stmt() {
    lookahead = lex->getNextLex();
    if (lookahead=="EOF")
        return;
    switch (lookahead[0]) {
        case 'C': create_stmt(); break;
        case 'I': insert_stmt(); break;
        case 'D': delete_stmt(); break;
        case 'S': query_stmt(); break;
        default: throw("Lexer error at line " + Data::toStr(lex->getLine()));
    }
}
Example #3
0
 const Statement &ssql_stmt() {
     if (lookahead == CREATE) {
         return create_stmt();
     } else if (lookahead == INSERT) {
         return insert_stmt();
     } else if (lookahead == DELETE) {
         return delete_stmt();
     } else if (lookahead == SELECT) {
         return query_stmt();
     } else {
         throw ParseError("Syntax error");
     }
 }
//
// handle_messages
//
void CUTS_Testing_LoggingServerListener_i::
handle_messages (const char * hostname,
                 const ::CUTS::UUID & test,
                 const ::CUTS::LogMessages & msgs)
{
  try
  {
    ACE_WRITE_GUARD (ACE_RW_Thread_Mutex, guard, this->mutex_);

    if (0 == this->database_)
      return;

    // Create a new query object.
    ADBC::Query * query = this->database_->create_query ();
    CUTS_Auto_Functor_T <ADBC::Query> auto_clean (query, &ADBC::Query::destroy);

    // Start a new transaction.
    query->execute_no_record ("BEGIN TRANSACTION");

    // Prepare the statement for inserting messages.
    CUTS_Log_Message_Table msg_table (*this->database_);

    CUTS_Log_Message_Table::INSERT_STMT insert_stmt (*query);
    insert_stmt.prepare ();

    insert_stmt.bind_hostname (hostname);

    // Insert each message into the database.
    std::for_each (msgs.get_buffer (),
                   msgs.get_buffer () + msgs.length (),
                   insert_message (insert_stmt));

    // End the current transaction.
    query->execute_no_record ("COMMIT");

  }
  catch (const ADBC::Exception & ex)
  {
    ACE_ERROR ((LM_ERROR,
                ACE_TEXT ("%T (%t) - %M - %s (%N:%l)\n"),
                ex.message ().c_str ()));

  }
  catch (...)
  {
    ACE_ERROR ((LM_ERROR,
                ACE_TEXT ("%T (%t) - %M - caught unknown exception (%N:%l)\n")));
  }

  ++this->messages_received_;
}