90int main(
int argc,
char* argv[]) {
96 .connectionName =
"testconnection",
99 .password =
"pentium5",
100 .database =
"snodec",
102 .socket =
"/run/mysqld/mysqld.sock",
117 VLOG(0) <<
"MySQL connected";
119 VLOG(0) <<
"MySQL disconnected";
126 "DELETE FROM `snodec`",
127 [&db1](
void) ->
void {
128 VLOG(0) <<
"********** OnQuery 0;";
130 [](my_ulonglong affectedRows) ->
void {
131 VLOG(0) <<
"********** AffectedRows 1: " << affectedRows;
133 [](
const std::string& errorString,
unsigned int errorNumber) ->
void {
134 VLOG(0) <<
"Error 1: " << errorString <<
" : " << errorNumber;
137 [](
const std::string& errorString,
unsigned int errorNumber) ->
void {
138 VLOG(0) <<
"********** Error 0: " << errorString <<
" : " << errorNumber;
142 "INSERT INTO `snodec`(`username`, `password`) VALUES ('Annett','Hallo')",
143 [&db1](
void) ->
void {
144 VLOG(0) <<
"********** OnQuery 1: ";
146 [](my_ulonglong affectedRows) ->
void {
147 VLOG(0) <<
"********** AffectedRows 2: " << affectedRows;
149 [](
const std::string& errorString,
unsigned int errorNumber) ->
void {
150 VLOG(0) <<
"********** Error 2: " << errorString <<
" : " << errorNumber;
153 [](
const std::string& errorString,
unsigned int errorNumber) ->
void {
154 VLOG(0) <<
"********** Error 1: " << errorString <<
" : " << errorNumber;
157 "SELECT * FROM snodec",
158 [&r](
const MYSQL_ROW row) ->
void {
159 if (row !=
nullptr) {
160 VLOG(0) <<
"********** Row Result 2: " << row[0] <<
" : " << row[1];
163 VLOG(0) <<
"********** Row Result 2: " << r;
166 [](
const std::string& errorString,
unsigned int errorNumber) ->
void {
167 VLOG(0) <<
"********** Error 2: " << errorString <<
" : " << errorNumber;
170 "SELECT * FROM snodec",
171 [&r](
const MYSQL_ROW row) ->
void {
172 if (row !=
nullptr) {
173 VLOG(0) <<
"********** Row Result 2: " << row[0] <<
" : " << row[1];
176 VLOG(0) <<
"********** Row Result 2: " << r;
179 [](
const std::string& errorString,
unsigned int errorNumber) ->
void {
180 VLOG(0) <<
"********** Error 2: " << errorString <<
" : " << errorNumber;
187 VLOG(0) <<
"MySQL connected";
189 VLOG(0) <<
"MySQL disconnected";
197 "SELECT * FROM snodec",
198 [](
const MYSQL_ROW row) ->
void {
199 if (row !=
nullptr) {
200 VLOG(0) <<
"Row Result 3: " << row[0] <<
" : " << row[1];
202 VLOG(0) <<
"Row Result 3:";
205 [](
const std::string& errorString,
unsigned int errorNumber) ->
void {
206 VLOG(0) <<
"Error 3: " << errorString <<
" : " << errorNumber;
210 "SELECT * FROM snodec",
211 [&db2, &r1, &r2](
const MYSQL_ROW row) ->
void {
212 if (row !=
nullptr) {
213 VLOG(0) <<
"Row Result 4: " << row[0] <<
" : " << row[1];
215 VLOG(0) <<
"Row Result 4:";
218 "SELECT * FROM snodec",
219 [&db2, &r1, &r2](
const MYSQL_ROW row) ->
void {
220 if (row !=
nullptr) {
221 VLOG(0) <<
"Row Result 5: " << row[0] <<
" : " << row[1];
223 VLOG(0) <<
"Row Result 5:";
226 [&db2, &r1](
const std::function<
void()>& stop) ->
void {
228 VLOG(0) <<
"Tick 2: " << i++;
232 "SELECT * FROM snodec",
233 [&r1](
const MYSQL_ROW row) ->
void {
234 if (row !=
nullptr) {
235 VLOG(0) <<
"Row Result 6: " << row[0] <<
" : " << row[1];
238 VLOG(0) <<
"Row Result 6: " << r1;
241 [stop](
const std::string& errorString,
unsigned int errorNumber) ->
void {
242 VLOG(0) <<
"Error 6: " << errorString <<
" : " << errorNumber;
249 [&db2, &r2](
const std::function<
void()>& stop) ->
void {
251 VLOG(0) <<
"Tick 0.7: " << i++;
255 "SELECT * FROM snodec",
256 [&db2, &r2](
const MYSQL_ROW row) ->
void {
257 if (row !=
nullptr) {
258 VLOG(0) <<
"Row Result 7: " << row[0] <<
" : " << row[1];
261 VLOG(0) <<
"Row Result 7: " << r2;
263 [](
unsigned int fieldCount) ->
void {
264 VLOG(0) <<
"************ FieldCount ************ = " << fieldCount;
266 [](
const std::string& errorString,
unsigned int errorNumber) ->
void {
267 VLOG(0) <<
"Error 7: " << errorString <<
" : " << errorNumber;
271 [stop](
const std::string& errorString,
unsigned int errorNumber) ->
void {
272 VLOG(0) <<
"Error 7: " << errorString <<
" : " << errorNumber;
276 [](
unsigned int fieldCount) ->
void {
277 VLOG(0) <<
"************ FieldCount ************ = " << fieldCount;
279 [](
const std::string& errorString,
unsigned int errorNumber) ->
void {
280 VLOG(0) <<
"Error 7: " << errorString <<
" : " << errorNumber;
286 [](
const std::string& errorString,
unsigned int errorNumber) ->
void {
287 VLOG(0) <<
"Error 5: " << errorString <<
" : " << errorNumber;
291 [](
const std::string& errorString,
unsigned int errorNumber) ->
void {
292 VLOG(0) <<
"Error 4: " << errorString <<
" : " << errorNumber;
296 [&db2](
const std::function<
void()>& stop) ->
void {
298 VLOG(0) <<
"Tick 0.1: " << i++;
301 VLOG(0) <<
"Stop Stop";
306 db2.startTransactions(
308 VLOG(0) <<
"Transactions activated 10:";
310 [](
const std::string& errorString,
unsigned int errorNumber) ->
void {
311 VLOG(0) <<
"Error 8: " << errorString <<
" : " << errorNumber;
314 "INSERT INTO `snodec`(`username`, `password`) VALUES ('Annett','Hallo')",
315 [&db2, j](
void) ->
void {
316 VLOG(0) <<
"Inserted 10: " << j;
318 [](my_ulonglong affectedRows) ->
void {
319 VLOG(0) <<
"AffectedRows 11: " << affectedRows;
321 [](
const std::string& errorString,
unsigned int errorNumber) ->
void {
322 VLOG(0) <<
"Error 11: " << errorString <<
" : " << errorNumber;
325 [stop](
const std::string& errorString,
unsigned int errorNumber) ->
void {
326 VLOG(0) <<
"Error 10: " << errorString <<
" : " << errorNumber;
331 VLOG(0) <<
"Rollback success 11";
333 [stop](
const std::string& errorString,
unsigned int errorNumber) ->
void {
334 VLOG(0) <<
"Error 12: " << errorString <<
" : " << errorNumber;
338 "INSERT INTO `snodec`(`username`, `password`) VALUES ('Annett','Hallo')",
339 [&db2, j](
void) ->
void {
340 VLOG(0) <<
"Inserted 13: " << j;
342 [](my_ulonglong affectedRows) ->
void {
343 VLOG(0) <<
"AffectedRows 14: " << affectedRows;
345 [](
const std::string& errorString,
unsigned int errorNumber) ->
void {
346 VLOG(0) <<
"Error 14: " << errorString <<
" : " << errorNumber;
349 [stop](
const std::string& errorString,
unsigned int errorNumber) ->
void {
350 VLOG(0) <<
"Error 13: " << errorString <<
" : " << errorNumber;
355 VLOG(0) <<
"Commit success 15";
357 [stop](
const std::string& errorString,
unsigned int errorNumber) ->
void {
358 VLOG(0) <<
"Error 15: " << errorString <<
" : " << errorNumber;
362 "SELECT COUNT(*) FROM snodec",
363 [&db2, j, stop](
const MYSQL_ROW row) ->
void {
364 if (row !=
nullptr) {
365 VLOG(0) <<
"Row Result count(*) 16: " << row[0];
366 if (std::atoi(row[0]) != j + 1) {
367 VLOG(0) <<
"Wrong number of rows 16: " << std::atoi(row[0]) <<
" != " << j + 1;
371 VLOG(0) <<
"Row Result count(*) 16: no result:";
373 [](
unsigned int fieldCount) ->
void {
374 VLOG(0) <<
"************ FieldCount ************ = " << fieldCount;
376 [](
const std::string& errorString,
unsigned int errorNumber) ->
void {
377 VLOG(0) <<
"Error 7: " << errorString <<
" : " << errorNumber;
381 [stop](
const std::string& errorString,
unsigned int errorNumber) ->
void {
382 VLOG(0) <<
"Error 16: " << errorString <<
" : " << errorNumber;
387 VLOG(0) <<
"Transactions deactivated 17";
389 [stop](
const std::string& errorString,
unsigned int errorNumber) ->
void {
390 VLOG(0) <<
"Error 17: " << errorString <<
" : " << errorNumber;