I use auto_increment often. The trick is to not include that column in
the sql_create_* macro. This may mean you have > 1 macro for the same
table, one for insert w/o that column, and one for retrieval with that
column. I often have > 1 macro for the same table depending on how I'm
using it.
HTH
-----Original Message-----
From: Graham Reitz [mailto:grahamreitz@stripped]
Sent: Saturday, August 11, 2007 2:27 AM
To: plusplus@stripped
Subject: Inserting with a column that uses auto_increment
How do you prevent an insert as shown in the code below from putting
"bogus" data in an auto_increment field?
It seems like the billing_id field, in the code below, inserts a number
based on the un-initialized value of client_id, instead of letting the
database auto_increment the value. What's a good method to deal with
this, that allows the database to auto_increment a database field?
Thanks,
Graham
/************ CODE ************/
#include <mysql++.h>
#include <custom.h>
using namespace mysqlpp;
sql_create_2(clients, 1, 2,
unsigned int, client_id, // auto_incremented field
unsigned int, billing_id)
void populate_client_info(clients& client_info)
{
client_info.billing_id = 1;
}
int main (int argc, char* const argv[])
{
Connection connection("db_name","ip_address","user",
"password",3306, false);
Query client_query = connection.query();
clients a_client;
populate_client_info(a_client);
client_query.insert(a_client);
client_query.execute();
return 0;
}