Advertisement
Guest User

Untitled

a guest
Apr 19th, 2014
43
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.26 KB | None | 0 0
  1. DELIMITER //
  2. CREATE PROCEDURE test()
  3. BEGIN
  4. DECLARE maxwf_fir INT DEFAULT 0;
  5. SET maxwf_fir = (SELECT MAX(wf_fir) FROM establishment);
  6. WHILE maxwf_fir > 0 DO
  7. UPDATE individual AS i LEFT JOIN establishment AS e USING (establishment_id) SET
  8. wf_fir = wf_fir-1,
  9. e.wf_est = e.wf_est-1,
  10. i.labor = 2,
  11. i.labor_periods = 0,
  12. i.establishment_id = 0
  13. WHERE (e.wf_hir <= e.wf_fir)
  14. AND (wf_fir > 0);
  15.  
  16. UPDATE individual AS i LEFT JOIN establishment AS e USING (establishment_id) SET
  17. e.counter1 = e.counter1+1
  18. WHERE (e.wf_hir <= e.wf_fir)
  19. AND (wf_fir > 0);
  20.  
  21. UPDATE individual AS i LEFT JOIN establishment AS e USING (establishment_id) SET
  22. e.counter1 = 0,
  23. e.counter2 = e.counter2+1
  24. WHERE (e.wf_hir <= e.wf_fir)
  25. AND (wf_fir > 0)
  26. AND (e.counter1 = e.wf_est);
  27.  
  28. SET maxwf_fir = maxwf_fir-1;
  29. END WHILE;
  30. END//
  31.  
  32. DELIMITER ;
  33. CALL test;
  34.  
  35. DROP PROCEDURE test;
  36.  
  37. std::stringstream query4;
  38. //query4 << "drop procedure if exists loop;n";
  39. query4 << "DELIMITER //n";
  40. query4 << "CREATE PROCEDURE loop()n";
  41. query4 << "BEGINn";
  42. query4 << "tDECLARE maxwf_fir INT DEFAULT 0;n";
  43. query4 << "tSET maxwf_fir = (SELECT MAX(wf_fir) FROM establishment);n";
  44. query4 << "tWHILE maxwf_fir > 0 DOn";
  45. query4 << "ttUPDATE individual AS i LEFT JOIN establishment AS e USING (establishment_id) SETn";
  46. query4 << "tte.wf_fir = e.wf_fir-1,n";
  47. query4 << "tte.wf_est = e.wf_est-1,n";
  48. query4 << "tti.labor = 2,n";
  49. query4 << "tti.labor_periods = 0,n";
  50. query4 << "tti.establishment_id = 0n";
  51. query4 << "ttWHERE (e.wf_hir <= e.wf_fir)n";
  52. query4 << "ttAND (e.wf_fir > 0)n";
  53. query4 << "ttAND e.temp < POW("<< Coeffs::gamma67 << ", e.counter2)*" << random << ";n";
  54.  
  55. query4 << "ttUPDATE individual AS i LEFT JOIN establishment AS e USING (establishment_id) SETn";
  56. query4 << "tte.counter1 = e.counter1+1n";
  57. query4 << "ttWHERE (e.wf_hir <= e.wf_fir)n";
  58. query4 << "ttAND NOT (e.temp < POW("<< Coeffs::gamma67 << ", e.counter2)*" << random << ")n";
  59. query4 << "ttAND (wf_fir > 0);n";
  60.  
  61. query4 << "ttUPDATE individual AS i LEFT JOIN establishment AS e USING (establishment_id) SETn";
  62. query4 << "tte.counter1 = 0n";
  63. query4 << "tte.counter2 = e.counter2+1n";
  64. query4 << "ttWHERE (e.wf_hir <= e.wf_fir)n";
  65. query4 << "ttAND NOT (e.temp < POW("<< Coeffs::gamma67 << ", e.counter2)*" << random << ")n";
  66. query4 << "ttAND e.counter1 = e.wf_estn";
  67. query4 << "ttAND (wf_fir > 0);n";
  68.  
  69. query4 << "ttSET maxwf_fir = maxwf_fir-1;n";
  70. query4 << "tEND WHILE;n";
  71. query4 << "END//n";
  72. query4 << "DELIMITER ;n";
  73. query4 << "CALL loop;n";
  74. query4 << "DROP PROCEDURE loop;n";
  75. stmt->execute(query4.str());
  76.  
  77. terminate called after throwing an instance of 'sql::SQLException'
  78. what(): 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 'DELIMITER //
  79. CREATE PROCEDURE loop()
  80. BEGIN
  81. DECLARE maxwf_fir INT DEFAULT 0;
  82. SE' at line 1
  83. Aborted (core dumped)
  84.  
  85. query4 << "DELIMITER //n";
  86.  
  87. `loop()`
  88.  
  89. query4 << "END//n";
  90.  
  91. query4 << "END;n"; // semi-colon is optional, if it is last statement in the sp
  92.  
  93. query4 << "DELIMITER ;n";
  94.  
  95. query4 << "CALL loop;n";
  96. query4 << "DROP PROCEDURE loop;n";
  97.  
  98. query4 << "CALL `loop`();n";
  99. query4 << "DROP PROCEDURE `loop`;n";
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement