~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to libdrizzle-2.0/libdrizzle/libdrizzle.hpp

  • Committer: Olaf van der Spek
  • Date: 2011-08-20 13:33:56 UTC
  • mto: This revision was merged to the branch mainline in revision 2409.
  • Revision ID: olafvdspek@gmail.com-20110820133356-951xhs1f8lqs06ug
Add throwing variants of query()

Show diffs side-by-side

added added

removed removed

Lines of Context:
43
43
 
44
44
class bad_query : public std::runtime_error
45
45
{
 
46
public:
 
47
  bad_query(const std::string& v) : std::runtime_error(v)
 
48
  {
 
49
  }
46
50
};
47
51
 
48
52
class noncopyable
177
181
  {
178
182
    drizzle_return_t ret;
179
183
    drizzle_query(*this, result, str, str_size, &ret);
180
 
    if (ret == DRIZZLE_RETURN_OK)
 
184
    if (!ret)
181
185
      ret = drizzle_result_buffer(result);
182
186
    return ret;
183
187
  }
191
195
  {
192
196
    return query(result, str, strlen(str));
193
197
  }
 
198
 
 
199
  result_c query(const char* str, size_t str_size)
 
200
  {
 
201
    result_c result;
 
202
    if (query(result, str, str_size))
 
203
      throw bad_query(error());
 
204
    return result;
 
205
  }
 
206
 
 
207
  result_c query(const std::string& str)
 
208
  {
 
209
    return query(str.data(), str.size());
 
210
  }
 
211
 
 
212
  result_c query(const char* str)
 
213
  {
 
214
    return query(str, strlen(str));
 
215
  }
194
216
private:
195
217
  drizzle_con_st b_;
196
218
};
265
287
    return con_.query(result, read());
266
288
  }
267
289
 
 
290
  result_c execute()
 
291
  {
 
292
    return con_.query(read());
 
293
  }
 
294
 
268
295
  std::string read() const
269
296
  {
270
297
    return out_ + in_;