99int main(
int argc,
char* argv[]) {
105 .connectionName =
"testconnection",
107 .username =
"snodec",
108 .password =
"pentium5",
109 .database =
"snodec",
111 .socket =
"/run/mysqld/mysqld.sock",
124 VLOG(0) <<
"MySQL error: " << state.errorMessage <<
" [" << state
.error <<
"]";
126 VLOG(0) <<
"MySQL connected";
128 VLOG(0) <<
"MySQL disconnected";
135 "DELETE FROM `snodec`",
136 [&db1](
void) ->
void {
137 VLOG(0) <<
"********** OnQuery 0;";
139 [](my_ulonglong affectedRows) ->
void {
140 VLOG(0) <<
"********** AffectedRows 1: " << affectedRows;
142 [](
const std::string& errorString,
unsigned int errorNumber) ->
void {
143 VLOG(0) <<
"Error 1: " << errorString <<
" : " << errorNumber;
146 [](
const std::string& errorString,
unsigned int errorNumber) ->
void {
147 VLOG(0) <<
"********** Error 0: " << errorString <<
" : " << errorNumber;
151 "INSERT INTO `snodec`(`username`, `password`) VALUES ('Annett','Hallo')",
152 [&db1](
void) ->
void {
153 VLOG(0) <<
"********** OnQuery 1: ";
155 [](my_ulonglong affectedRows) ->
void {
156 VLOG(0) <<
"********** AffectedRows 2: " << affectedRows;
158 [](
const std::string& errorString,
unsigned int errorNumber) ->
void {
159 VLOG(0) <<
"********** Error 2: " << errorString <<
" : " << errorNumber;
162 [](
const std::string& errorString,
unsigned int errorNumber) ->
void {
163 VLOG(0) <<
"********** Error 1: " << errorString <<
" : " << errorNumber;
166 "SELECT * FROM snodec",
167 [&r](
const MYSQL_ROW row) ->
void {
168 if (row !=
nullptr) {
169 VLOG(0) <<
"********** Row Result 2: " << row[0] <<
" : " << row[1];
172 VLOG(0) <<
"********** Row Result 2: " << r;
175 [](
const std::string& errorString,
unsigned int errorNumber) ->
void {
176 VLOG(0) <<
"********** Error 2: " << errorString <<
" : " << errorNumber;
179 "SELECT * FROM snodec",
180 [&r](
const MYSQL_ROW row) ->
void {
181 if (row !=
nullptr) {
182 VLOG(0) <<
"********** Row Result 2: " << row[0] <<
" : " << row[1];
185 VLOG(0) <<
"********** Row Result 2: " << r;
188 [](
const std::string& errorString,
unsigned int errorNumber) ->
void {
189 VLOG(0) <<
"********** Error 2: " << errorString <<
" : " << errorNumber;
194 VLOG(0) <<
"MySQL error: " << state.errorMessage <<
" [" << state
.error <<
"]";
196 VLOG(0) <<
"MySQL connected";
198 VLOG(0) <<
"MySQL disconnected";
206 "SELECT * FROM snodec",
207 [](
const MYSQL_ROW row) ->
void {
208 if (row !=
nullptr) {
209 VLOG(0) <<
"Row Result 3: " << row[0] <<
" : " << row[1];
211 VLOG(0) <<
"Row Result 3:";
214 [](
const std::string& errorString,
unsigned int errorNumber) ->
void {
215 VLOG(0) <<
"Error 3: " << errorString <<
" : " << errorNumber;
219 "SELECT * FROM snodec",
220 [&db2, &r1, &r2](
const MYSQL_ROW row) ->
void {
221 if (row !=
nullptr) {
222 VLOG(0) <<
"Row Result 4: " << row[0] <<
" : " << row[1];
224 VLOG(0) <<
"Row Result 4:";
227 "SELECT * FROM snodec",
228 [&db2, &r1, &r2](
const MYSQL_ROW row) ->
void {
229 if (row !=
nullptr) {
230 VLOG(0) <<
"Row Result 5: " << row[0] <<
" : " << row[1];
232 VLOG(0) <<
"Row Result 5:";
235 [&db2, &r1](
const std::function<
void()>& stop) ->
void {
237 VLOG(0) <<
"Tick 2: " << i++;
241 "SELECT * FROM snodec",
242 [&r1](
const MYSQL_ROW row) ->
void {
243 if (row !=
nullptr) {
244 VLOG(0) <<
"Row Result 6: " << row[0] <<
" : " << row[1];
247 VLOG(0) <<
"Row Result 6: " << r1;
250 [stop](
const std::string& errorString,
unsigned int errorNumber) ->
void {
251 VLOG(0) <<
"Error 6: " << errorString <<
" : " << errorNumber;
258 [&db2, &r2](
const std::function<
void()>& stop) ->
void {
260 VLOG(0) <<
"Tick 0.7: " << i++;
264 "SELECT * FROM snodec",
265 [&db2, &r2](
const MYSQL_ROW row) ->
void {
266 if (row !=
nullptr) {
267 VLOG(0) <<
"Row Result 7: " << row[0] <<
" : " << row[1];
270 VLOG(0) <<
"Row Result 7: " << r2;
272 [](
unsigned int fieldCount) ->
void {
273 VLOG(0) <<
"************ FieldCount ************ = " << fieldCount;
275 [](
const std::string& errorString,
unsigned int errorNumber) ->
void {
276 VLOG(0) <<
"Error 7: " << errorString <<
" : " << errorNumber;
280 [stop](
const std::string& errorString,
unsigned int errorNumber) ->
void {
281 VLOG(0) <<
"Error 7: " << errorString <<
" : " << errorNumber;
285 [](
unsigned int fieldCount) ->
void {
286 VLOG(0) <<
"************ FieldCount ************ = " << fieldCount;
288 [](
const std::string& errorString,
unsigned int errorNumber) ->
void {
289 VLOG(0) <<
"Error 7: " << errorString <<
" : " << errorNumber;
295 [](
const std::string& errorString,
unsigned int errorNumber) ->
void {
296 VLOG(0) <<
"Error 5: " << errorString <<
" : " << errorNumber;
300 [](
const std::string& errorString,
unsigned int errorNumber) ->
void {
301 VLOG(0) <<
"Error 4: " << errorString <<
" : " << errorNumber;
305 [&db2](
const std::function<
void()>& stop) ->
void {
307 VLOG(0) <<
"Tick 0.1: " << i++;
310 VLOG(0) <<
"Stop Stop";
315 db2.startTransactions(
317 VLOG(0) <<
"Transactions activated 10:";
319 [](
const std::string& errorString,
unsigned int errorNumber) ->
void {
320 VLOG(0) <<
"Error 8: " << errorString <<
" : " << errorNumber;
323 "INSERT INTO `snodec`(`username`, `password`) VALUES ('Annett','Hallo')",
324 [&db2, j](
void) ->
void {
325 VLOG(0) <<
"Inserted 10: " << j;
327 [](my_ulonglong affectedRows) ->
void {
328 VLOG(0) <<
"AffectedRows 11: " << affectedRows;
330 [](
const std::string& errorString,
unsigned int errorNumber) ->
void {
331 VLOG(0) <<
"Error 11: " << errorString <<
" : " << errorNumber;
334 [stop](
const std::string& errorString,
unsigned int errorNumber) ->
void {
335 VLOG(0) <<
"Error 10: " << errorString <<
" : " << errorNumber;
340 VLOG(0) <<
"Rollback success 11";
342 [stop](
const std::string& errorString,
unsigned int errorNumber) ->
void {
343 VLOG(0) <<
"Error 12: " << errorString <<
" : " << errorNumber;
347 "INSERT INTO `snodec`(`username`, `password`) VALUES ('Annett','Hallo')",
348 [&db2, j](
void) ->
void {
349 VLOG(0) <<
"Inserted 13: " << j;
351 [](my_ulonglong affectedRows) ->
void {
352 VLOG(0) <<
"AffectedRows 14: " << affectedRows;
354 [](
const std::string& errorString,
unsigned int errorNumber) ->
void {
355 VLOG(0) <<
"Error 14: " << errorString <<
" : " << errorNumber;
358 [stop](
const std::string& errorString,
unsigned int errorNumber) ->
void {
359 VLOG(0) <<
"Error 13: " << errorString <<
" : " << errorNumber;
364 VLOG(0) <<
"Commit success 15";
366 [stop](
const std::string& errorString,
unsigned int errorNumber) ->
void {
367 VLOG(0) <<
"Error 15: " << errorString <<
" : " << errorNumber;
371 "SELECT COUNT(*) FROM snodec",
372 [&db2, j, stop](
const MYSQL_ROW row) ->
void {
373 if (row !=
nullptr) {
374 VLOG(0) <<
"Row Result count(*) 16: " << row[0];
375 if (std::atoi(row[0]) != j + 1) {
376 VLOG(0) <<
"Wrong number of rows 16: " << std::atoi(row[0]) <<
" != " << j + 1;
380 VLOG(0) <<
"Row Result count(*) 16: no result:";
382 [](
unsigned int fieldCount) ->
void {
383 VLOG(0) <<
"************ FieldCount ************ = " << fieldCount;
385 [](
const std::string& errorString,
unsigned int errorNumber) ->
void {
386 VLOG(0) <<
"Error 7: " << errorString <<
" : " << errorNumber;
390 [stop](
const std::string& errorString,
unsigned int errorNumber) ->
void {
391 VLOG(0) <<
"Error 16: " << errorString <<
" : " << errorNumber;
396 VLOG(0) <<
"Transactions deactivated 17";
398 [stop](
const std::string& errorString,
unsigned int errorNumber) ->
void {
399 VLOG(0) <<
"Error 17: " << errorString <<
" : " << errorNumber;