| 179 | | if (PQconsumeInput(m_PGConnection) == 1) |
|---|
| 180 | | { |
|---|
| 181 | | if (PQisBusy(m_PGConnection) == 0) |
|---|
| | 180 | if ( PQconsumeInput(m_PGConnection) != 1 ) |
|---|
| | 181 | return 1; |
|---|
| | 182 | |
|---|
| | 183 | if ( PQisBusy(m_PGConnection) != 0 ) |
|---|
| | 184 | return 1; |
|---|
| | 185 | |
|---|
| | 186 | PGresult *res=NULL; |
|---|
| | 187 | PGSQLResult *sqlresult = NULL; |
|---|
| | 188 | SQLQuery *sqlquery = m_Queries.front(); |
|---|
| | 189 | m_Queries.pop_front(); |
|---|
| | 190 | |
|---|
| | 191 | // int foo = rand()%1024; |
|---|
| | 192 | |
|---|
| | 193 | vector< map<string,string> > result; |
|---|
| | 194 | |
|---|
| | 195 | while ( (res = PQgetResult(m_PGConnection)) != NULL ) |
|---|
| | 196 | { |
|---|
| | 197 | // logCrit("README %i %x %x\n",foo,res,sqlquery); |
|---|
| | 198 | switch ( PQresultStatus(res) ) |
|---|
| 189 | | case PGRES_COMMAND_OK: |
|---|
| 190 | | case PGRES_TUPLES_OK: |
|---|
| 191 | | break; |
|---|
| 192 | | |
|---|
| 193 | | default: |
|---|
| 194 | | logCrit("Query failure. Query'%s' Error '%s' ('%s')\n", |
|---|
| 195 | | m_Queries.front()->getQuery().c_str(), |
|---|
| 196 | | PQresStatus(PQresultStatus(res)), |
|---|
| 197 | | PQresultErrorMessage(res)); |
|---|
| 198 | | } |
|---|
| 199 | | |
|---|
| 200 | | |
|---|
| 201 | | if ( m_Queries.front()->getCallback() != NULL ) |
|---|
| 202 | | { |
|---|
| 203 | | |
|---|
| 204 | | sqlresult = new PGSQLResult(res,m_Queries.front()->getQuery(),m_Queries.front()->getObject()); |
|---|
| 205 | | |
|---|
| 206 | | switch (PQresultStatus(res)) |
|---|
| | 208 | map<string,string> foo; |
|---|
| | 209 | for ( i=0;i<PQnfields(res);i++ ) |
|---|
| 220 | | |
|---|
| 221 | | PQclear(res); |
|---|
| 222 | | |
|---|
| 223 | | delete m_Queries.front(); |
|---|
| 224 | | m_Queries.pop_front(); |
|---|
| 225 | | |
|---|
| 226 | | if (m_Queries.size() > 0) |
|---|
| 227 | | { |
|---|
| 228 | | logInfo("sending query %s\n",m_Queries.front()->getQuery().c_str()); |
|---|
| 229 | | int ret = PQsendQuery(m_PGConnection, m_Queries.front()->getQuery().c_str()); |
|---|
| 230 | | if (ret != 1) |
|---|
| 231 | | logCrit("ERROR %i %s\n",ret,PQerrorMessage(m_PGConnection)); |
|---|
| 232 | | } |
|---|
| 233 | | |
|---|
| 234 | | |
|---|
| 235 | | |
|---|
| | 217 | break; |
|---|
| | 218 | |
|---|
| | 219 | default: |
|---|
| | 220 | logCrit("Query failure. Query'%s' Error '%s' ('%s')\n", |
|---|
| | 221 | sqlquery->getQuery().c_str(), |
|---|
| | 222 | PQresStatus(PQresultStatus(res)), |
|---|
| | 223 | PQresultErrorMessage(res)); |
|---|
| | 224 | return 1; |
|---|
| | 226 | |
|---|
| | 227 | PQclear(res); |
|---|
| | 228 | |
|---|
| | 229 | } |
|---|
| | 230 | if ( sqlquery->getCallback() != NULL ) |
|---|
| | 231 | { |
|---|
| | 232 | m_LockSend = true; |
|---|
| | 233 | sqlresult = new PGSQLResult(&result,sqlquery->getQuery(),sqlquery->getObject()); |
|---|
| | 234 | sqlquery->getCallback()->sqlSuccess(sqlresult); |
|---|
| | 235 | delete sqlresult; |
|---|
| | 236 | m_LockSend = false; |
|---|
| | 237 | |
|---|
| | 238 | } |
|---|
| | 239 | |
|---|
| | 240 | delete sqlquery; |
|---|
| | 241 | |
|---|
| | 242 | |
|---|
| | 243 | |
|---|
| | 244 | if ( m_Queries.size() > 0 ) |
|---|
| | 245 | { |
|---|
| | 246 | logInfo("sending query %s\n",m_Queries.front()->getQuery().c_str()); |
|---|
| | 247 | int ret = PQsendQuery(m_PGConnection, m_Queries.front()->getQuery().c_str()); |
|---|
| | 248 | if ( ret != 1 ) |
|---|
| | 249 | logCrit("ERROR %i %s\n",ret,PQerrorMessage(m_PGConnection)); |
|---|