-----Original Message-----
From: Chris Morgan [mailto:christopher.j.morgan@stripped]
Sent: Wednesday, 26 September, 2012 12:36 PM
To: Kevin Smith
Cc: plusplus@stripped
Subject: Re: Problem using the sql_create_# macro in a header file
Have you followed the steps in section 5.8 of the user manual (
http://tangentsoft.net/mysql++/doc/html/userman/ssqls.html)? Specifically
the use of MYSQLPP_SSQLS_NO_STATICS
-Chris
On Tue, Sep 25, 2012 at 9:14 PM, Kevin Smith <ksmith@stripped> wrote:
> Hi,
>
>
>
> I am writing an application where I have created an interface class
> to the mysql database. The class contains a vector of SSQLS objects
> which are defined by the sql_create_# macro. I have placed the macro
> in the header file for the interface class so that the definition of
> the SSQLS structure is available to the class vector definition.
> Everything compiles nicely, but when the program is linked, if there
> are multiple files that include the header, there are multiple
> definitions of a couple of the functions that are created by the
> macro. If only one file includes the header, then there are no
> problems. Do you have a work around for this?
>
>
>
> MyHeader.h
>
>
>
> #include <mysql++.h>
>
> #include <ssqls.h>
>
> #include <vector>
>
>
>
> sql_create_5(DBPTrans, 1, 5,
>
> mysqlpp::sql_int, trans_id,
>
> mysqlpp::sql_datetime, trans_time,
>
> mysqlpp::sql_varchar, trans_type,
>
> mysqlpp::sql_char, ticket_id,
>
> mysqlpp::sql_mediumtext, data);
>
>
>
> using namespace std;
>
>
>
> class dbInterface {
>
>
>
> public:
>
> dbInterface ();
>
> int pushTransaction (void);
>
> bool flush(void);
>
>
>
> private:
>
> bool dbupdateLastTransaction(void);
>
> bool dbWriteTransactionList(void);
>
> vector < DBPTrans > dbptransvect;
>
> };
>
>
>
>
>
> Support A.cpp
>
>
>
> #include "MyHeader.h"
>
>
>
> ..
>
>
>
>
>
> Main.cpp
>
>
>
> #include "MyHeader.h"
>
>
>
> ..
>
>
>
>
>
> When Linked, there will be functions in SupportA and Main that are
> multiply defined, and it happens with sql_create made function.
>
>
>
> Thanks in advance!
>
>
>
> -Kevin
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>