db.usp 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. <!--#
  2. Test type 2: Single database query
  3. TechEmpower Web Framework Benchmarks
  4. -->
  5. <!--#declaration
  6. #include "world.h"
  7. static World* pworld_db;
  8. static UOrmSession* psql_db;
  9. static UOrmStatement* pstmt_db;
  10. #ifndef AS_cpoll_cppsp_DO
  11. static UValue* pvalue;
  12. #endif
  13. static void usp_fork_db()
  14. {
  15. U_TRACE(5, "::usp_fork_db()")
  16. psql_db = U_NEW(UOrmSession(U_CONSTANT_TO_PARAM("hello_world")));
  17. if (psql_db->isReady())
  18. {
  19. pstmt_db = U_NEW(UOrmStatement(*psql_db, U_CONSTANT_TO_PARAM("SELECT randomNumber FROM World WHERE id = ?")));
  20. if (pstmt_db == 0) U_ERROR("usp_fork_db(): we cound't connect to db");
  21. pworld_db = U_NEW(World);
  22. pstmt_db->use( pworld_db->id);
  23. pstmt_db->into(pworld_db->randomNumber);
  24. # ifndef AS_cpoll_cppsp_DO
  25. pvalue = U_NEW(UValue(OBJECT_VALUE));
  26. # endif
  27. }
  28. }
  29. #ifdef DEBUG
  30. static void usp_end_db()
  31. {
  32. U_TRACE(5, "::usp_end_db()")
  33. if (pstmt_db)
  34. {
  35. delete pstmt_db;
  36. delete psql_db;
  37. delete pworld_db;
  38. # ifndef AS_cpoll_cppsp_DO
  39. delete pvalue;
  40. # endif
  41. }
  42. }
  43. #endif
  44. -->
  45. <!--#header
  46. Content-Type: application/json; charset=UTF-8
  47. -->
  48. <!--#code
  49. pworld_db->id = u_get_num_random(10000);
  50. pstmt_db->execute();
  51. #ifdef AS_cpoll_cppsp_DO
  52. USP_PRINTF_ADD("{\"id\":%u,\"randomNumber\":%u}", pworld_db->id, pworld_db->randomNumber);
  53. #else
  54. USP_JSON_stringify(*pvalue, World, *pworld_db);
  55. pvalue->clear();
  56. #endif
  57. -->