Right. The insert uses the macro name as table name, selects don't, so
the insert will have to have the table name.
You may be able to get around it with namespaces.
-----Original Message-----
From: Graham Reitz [mailto:grahamreitz@stripped]
Sent: Sunday, August 12, 2007 12:10 AM
To: Jim Wallace
Cc: plusplus@stripped
Subject: Re: Inserting with a column that uses auto_increment
Ok, that seems to work, thanks. Another question:
How do you create two sql_create macros with the same name? (doesn't
compile)
If I change the name of the sql_create_N(name,...) to something else it
won't let me insert it into the database because it has a different
table name that doesn't match.
Thanks,
Graham
On Aug 11, 2007, at 8:29 PM, Jim Wallace wrote:
> 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;
> }
>
>
> --
> MySQL++ Mailing List
> For list archives: http://lists.mysql.com/plusplus
> To unsubscribe: http://lists.mysql.com/plusplus?
> unsub=grahamreitz@stripped
>