Hi All, I am getting error in mixing static and prepared statements ( using soci::details::prepare_temp_type ) on same sql session (connection). I am attaching the test code to reproduce the issue.
--- #include<soci/soci.h> #include<exception> #include<iostream> int main() { soci::session sql("mysql", "service=dbrepl user=scott password=tiger"); sql << " DROP TABLE IF EXISTS TEST_PREPSTMT "; sql << " CREATE TABLE TEST_PREPSTMT ( ID INT ) "; soci::details::prepare_temp_type prepStmt(sql.prepare << "INSERT INTO TEST_PREPSTMT VALUES(:val1)"); try{ sql << " INSERT INTO TEST_PREPSTMT VALUES(1) "; } catch(std::exception &e) { std::cerr << " First Insert failed. Error:"<< e.what() << std::endl; } try { prepStmt, soci::use(2); soci::statement stmt(prepStmt); stmt.execute(); } catch (std::exception &e) { std::cerr << " Second Insert failed. Error:" << e.what() << std::endl; } try { sql << " INSERT INTO TEST_PREPSTMT VALUES(3) " ; } catch (std::exception &e) { std::cerr << " Third Insert failed. Error:" << e.what() << std::endl; } } --- On running, I get below error: $ ./a.out Second Insert failed. Error:You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '2' at line 1 $ So, out of three inserts, second insert fails. On checking MySQL query log, server received below statements from the test application, and 4th statement (ie, second insert) is not correct: --- 292 Query DROP TABLE IF EXISTS TEST_PREPSTMT 292 Query CREATE TABLE TEST_PREPSTMT ( ID INT ) 292 Query INSERT INTO TEST_PREPSTMT VALUES(1) 292 Query INSERT INTO TEST_PREPSTMT VALUES(1) 2 292 Query INSERT INTO TEST_PREPSTMT VALUES(3) ---- Please let me know if I am not using it correctly. Thanks, Lalit ------------------------------------------------------------------------------ Open source business process management suite built on Java and Eclipse Turn processes into business applications with Bonita BPM Community Edition Quickly connect people, data, and systems into organized workflows Winner of BOSSIE, CODIE, OW2 and Gartner awards http://p.sf.net/sfu/Bonitasoft _______________________________________________ soci-users mailing list soci-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/soci-users