[DBAgent] Add a new framework to do transaction.

Previously we use macro's to write proceduresdo in transactoin.
As a result, the syntax around the macro is little storange
in terms of the C++'s grammer.

In addtion, the procedures such as select or insert should be in
the DBAgent's contenxt since their operations depend on the SQL
servers in a precise sence.