@@ -200,10 +200,13 @@ void TeBkUmLpqAsyncRouter::updatesAsyncChQ(void* ctx, bool status, std::string q
200
200
std::vector<TeBkUmLpqAsyncWorld>* vec = (std::vector<TeBkUmLpqAsyncWorld>*)req->d ;
201
201
202
202
std::stringstream ss;
203
- ss << " update world as t set randomnumber = c.randomnumber from (values" ;
203
+ // ss << "update world as t set randomnumber = c.randomnumber from (values";
204
204
205
205
std::vector<LibpqParam> pars;
206
206
207
+ LibpqDataSourceImpl* sqli = req->sqli ;
208
+
209
+ void * areq = NULL ;
207
210
int queryCount = (int )vec->size ();
208
211
for (int c = 0 ; c < queryCount; ++c) {
209
212
int newRandomNumber = rand () % 10000 + 1 ;
@@ -214,14 +217,20 @@ void TeBkUmLpqAsyncRouter::updatesAsyncChQ(void* ctx, bool status, std::string q
214
217
}
215
218
}
216
219
vec->at (c).setRandomNumber (newRandomNumber);
217
- ss << " (" << vec->at (c).getId () << " ," << newRandomNumber << " )" ;
218
- if (c!=queryCount-1 ) {
219
- ss << " ," ;
220
+ if (areq==NULL ) {
221
+ areq = sqli->beginAsync (areq);
222
+ } else {
223
+ sqli->beginAsync (areq);
220
224
}
225
+ ss.str (std::string ());
226
+ ss << " update world set randomnumber = " << newRandomNumber << " where id = " << vec->at (c).getId ();
227
+ sqli->executeUpdateQueryAsync (ss.str (), pars, NULL , NULL , areq, false );
228
+ sqli->commitAsync (areq);
229
+ /* if(c!=queryCount-1) {
230
+ ss << ",";
231
+ }*/
221
232
}
222
- ss << " ) as c(id, randomnumber) where c.id = t.id" ;
223
-
224
- LibpqDataSourceImpl* sqli = req->sqli ;
233
+ // ss << ") as c(id, randomnumber) where c.id = t.id";
225
234
226
235
AsyncReq* ar = new AsyncReq;
227
236
ar->sif = req->sif ;
@@ -231,9 +240,6 @@ void TeBkUmLpqAsyncRouter::updatesAsyncChQ(void* ctx, bool status, std::string q
231
240
req->sif = NULL ;
232
241
233
242
try {
234
- void * areq = sqli->beginAsync ();
235
- sqli->executeUpdateQueryAsync (ss.str (), pars, NULL , NULL , areq, false );
236
- sqli->commitAsync (areq);
237
243
sqli->completeAsync (areq, ar, &TeBkUmLpqAsyncRouter::updatesAsyncChU);
238
244
} catch (const std::exception& e) {
239
245
throw e;
0 commit comments