~Database~ |
ExamplesThe following example should be linked with the mysqlclient library from the MySQL distribution / build.
#include <stdio.h>
#include <stdlib.h>
#include <mysql/mysql.h>
#include <string>
#include "Database.h"
#include "Query.h"
int main()
{
Database db("localhost","dbuser","","testdb");
Query q(db);
q.execute("delete from user");
q.execute("insert into user values(1,'First Person')");
q.execute("insert into user values(2,'Another Person')");
q.get_result("select num,name from user");
while (q.fetch_row())
{
long num = q.getval();
std::string name = q.getstr();
printf("User#%ld: %s\n", num, name.c_str() );
}
q.free_result();
}
Using the embedded MySQL server. The following example should be linked with the mysqld library from the MySQL distribution / build.
#include <stdio.h>
#include <stdlib.h>
#include <mysql/mysql.h>
#include <string>
#include "Database.h"
#include "Query.h"
int main()
{
// embedded server setup
const char *server_groups[] = {"test_libmysqld_SERVER","embedded","server",NULL};
const char *server_argv[] = {
"main",
"--datadir=.",
"--set-variable=key_buffer_size=32M"
};
int server_argc = sizeof(server_argv) / sizeof(char *);
// server init
mysql_server_init(server_argc, (char **)server_argv, (char **)server_groups);
// Database instances get their own scope, not one must live when we call
// mysql_server_end() below
{
Database db("testdb"); // Embedded server constructor
Query q(db);
q.execute("delete from user");
q.execute("insert into user values(1,'First Person')");
q.execute("insert into user values(2,'Another Person')");
q.get_result("select num,name from user");
while (q.fetch_row())
{
long num = q.getval();
std::string name = q.getstr();
printf("User#%ld: %s\n", num, name.c_str() );
}
q.free_result();
} // End of Database scope
// bring the server down
mysql_server_end();
}
|