289{
290 switch(_assignType) {
295 break;
298 break;
301 break;
302 default :
303 ;
304 }
305
307 if (Param::__dataType != _assignType) {
309 return false;
310 }
311 }
312
314 sword status = OCI_SUCCESS;
315
319 if (_size <= sizeof(int64_t )) {
320 uword sign = OCI_NUMBER_SIGNED;
322 sign = OCI_NUMBER_UNSIGNED;
323
324 status = ::OCINumberFromInt(
325 pError,
326 (CONST dvoid*)_pv,
327 _size,
328 sign,
329 &__data.num
330 );
331 if (status != OCI_SUCCESS) {
333 return false;
334 }
335 }
336 #if 0
337 else if (_size == sizeof(int64_t)) {
338 ByteString str;
341 else
343
344 status = ::OCINumberFromText(
345 pError,
346 (CONST OraText*)str.data(),
347 str.length(),
349 0,
351 0,
352 &__data.num
353 );
354 if (status != OCI_SUCCESS) {
356 return false;
357 }
358 }
359 #endif
360 else {
362 return false;
363 }
368 break;
369 }
371 if (_size <= sizeof(double)) {
372 status = ::OCINumberFromReal(
373 pError,
374 (CONST dvoid*)_pv,
375 _size,
376 &__data.num
377 );
378 if (status != OCI_SUCCESS) {
380 return false;
381 }
382 }
383 else {
385 return false;
386 }
391 break;
392 }
394 if (_size == sizeof(SQL::Date)) {
395 const SQL::Date* p = (const SQL::Date*)_pv;
396 SQL::TimeStamp ts;
404 return false;
405 }
406 else {
408 return false;
409 }
410 break;
411 }
413
415 return false;
416 }
418 if (_size == sizeof(SQL::TimeStamp)) {
419 if (!
setTimeStamp((
const SQL::TimeStamp*)_pv, _size, _assignType))
420 return false;
421 }
422 else {
424 return false;
425 }
426 break;
427 }
429 if (_size == sizeof(SQL::Interval)) {
430 if (!
setInterval((
const SQL::Interval*)_pv, _size, _assignType))
431 return false;
432 }
433 else {
435 return false;
436 }
437 break;
438 }
441 status = ::OCINumberFromText(
442 pError,
443 (CONST OraText*)_pv,
444 _size,
446 0,
448 0,
449 &__data.num
450 );
451 if (status != OCI_SUCCESS) {
453 return false;
454 }
459 break;
460 }
461 }
463 switch (_assignType) {
467 break;
468 }
472 break;
473 }
477 break;
478 }
482 break;
483 }
484 default: {
486 return false;
487 }
488 }
491 break;
492 }
494 switch (_assignType) {
498 break;
499 }
503 break;
504 }
508 break;
509 }
513 break;
514 }
515 default: {
517 return false;
518 }
519 }
523 else
525 __inputStream = (InputStream*)_pv;
526 break;
527 }
528 default: {
530 return false;
531 }
532 }
533
534 Param::__dataType = _assignType;
535 __inputIndicator = 0;
536
537 return true;
538}
#define __SET_ERROR(_errorCode)
static ByteString toByteString(int64_t _n, unsigned _base=10)
OCIError * errorHandle() const
bool setTimeStamp(const SQL::TimeStamp *_pv, size_t _size, SQL::DataType _assignType)
bool setInterval(const SQL::Interval *_pv, size_t _size, SQL::DataType _assignType)
static ByteString toByteString(uint64_t _u, unsigned _base=10)