From: Kevin Smith Date: September 26 2012 1:20pm Subject: RE: Problem using the sql_create_# macro in a header file List-Archive: http://lists.mysql.com/plusplus/9541 Message-Id: <003d01cd9be9$c2dd2310$48976930$@lapis.com> MIME-Version: 1.0 Content-Type: multipart/alternative; boundary="----=_NextPart_000_003E_01CD9BC8.3BCDCD00" ------=_NextPart_000_003E_01CD9BC8.3BCDCD00 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Hi all, Thank you for your quick responses. I looked at each, and chose the MYSQLPP_SSQLS_NO_STATICS method as the most simplistic. I don't know how I missed that in the manual to begin with. Thanks for all of your help and thank you Chris for providing a very simple solution! -Kevin From: Chris Morgan [mailto:christopher.j.morgan@stripped] Sent: Wednesday, September 26, 2012 12:36 AM 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 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 #include #include 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 ------=_NextPart_000_003E_01CD9BC8.3BCDCD00--