Changeset 86
- Timestamp:
- 02/12/08 22:19:52 (10 months ago)
- Files:
-
- trunk/dbi/PreparedStatement.d (modified) (1 diff)
- trunk/dbi/mysql/MysqlPreparedStatement.d (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/dbi/PreparedStatement.d
r82 r86 25 25 void execute(); 26 26 void execute(void*[] bind); 27 bool fetch(void*[] bind );27 bool fetch(void*[] bind, void* delegate(size_t) allocator = null); 28 28 void prefetchAll(); 29 29 void reset(); trunk/dbi/mysql/MysqlPreparedStatement.d
r85 r86 236 236 } 237 237 238 bool fetch(void*[] bind )238 bool fetch(void*[] bind, void* delegate(size_t) allocator = null) 239 239 { 240 240 if(!bind || !resBind) throw new DBIException("Attempting to fetch from a statement without having set parameters types or passed a valid bind array."); … … 255 255 resHelper.len[i] = 256; 256 256 resBind[i].buffer = (*arr).ptr;*/ 257 ubyte[] buf;258 buf.length = 255;257 /*ubyte[] buf; 258 buf.length = 0; 259 259 resHelper.buffer[i] = buf; 260 260 resBind[i].buffer = buf.ptr; 261 resBind[i].buffer_length = 255; 262 resHelper.len[i] = 255; 261 resBind[i].buffer_length = 0; 262 resHelper.len[i] = 0;*/ 263 ubyte[]* arr = cast(ubyte[]*)(bind[i]); 264 resHelper.buffer[i] = *arr; 265 resBind[i].buffer_length = arr.length; 266 resHelper.len[i] = 0; 267 resBind[i].buffer = arr.ptr; 263 268 break; 264 269 case(MYSQL_TYPE_DATETIME): … … 333 338 334 339 if(resBind[i].error) { 335 buf.length = l; 340 if(allocator) { 341 ubyte* ptr = cast(ubyte*)allocator(l); 342 buf = ptr[0 .. l]; 343 } 344 else { 345 buf = new ubyte[l]; 346 } 336 347 resBind[i].buffer_length = l; 337 348 resBind[i].buffer = buf.ptr;
