#include <iostream>
#include "ocilib.hpp"
using namespace ocilib;
#ifdef _WINDOWS
#define sleep(x) Sleep(x*1000)
#endif
#define WaitForEvents() sleep(5)
#define WaitForDatabase() sleep(60)
static std::map<unsigned int, ostring> EventTypes;
static std::map<unsigned int, ostring> ObjectEvents;
void EventHandler(
Event &evt);
void SetupNames();
int main(int argc, char* argv[])
{
SetupNames();
try
{
st.Execute("create table table1(code number)");
st.Execute("create table table2(str varchar2(10))");
sub.
Watch(
"select * from table1");
sub.
Watch(
"select * from table2");
st.Execute("alter table table1 add price number");
WaitForEvents();
st.Execute("insert into table1 values(1, 10.5)");
st.Execute("insert into table2 values('shoes')");
WaitForEvents();
st.Execute("update table1 set price = 13.5 where code = 1");
st.Execute("delete from table2 ");
WaitForEvents();
st.Execute("drop table table1");
st.Execute("drop table table2");
WaitForEvents();
WaitForDatabase();
}
catch (std::exception &ex)
{
std::cout << ex.what() << std::endl;
}
}
void SetupNames()
{
}
void EventHandler(
Event &evt)
{
std::cout <<
"** Event : " << EventTypes[evt.
GetType()] << std::endl;
{
std::cout <<
".... Object : " << evt.
GetObjectName() << std::endl;
std::cout <<
".... Action : " << ObjectEvents[evt.
GetObjectEvent()] << std::endl;
std::cout <<
".... RowID : " << evt.
GetRowID() << std::endl;
}
std::cout << std::endl;
}