298{
299 switch(_assignType) {
304 break;
307 default :
308 ;
309 }
310
312 if (Param::__dataType != _assignType) {
314 return false;
315 }
316 }
317
319 sword status = OCI_SUCCESS;
320
324 if (_size <= sizeof(int64_t )) {
325 uword sign = OCI_NUMBER_SIGNED;
327 sign = OCI_NUMBER_UNSIGNED;
328
329 status = ::OCINumberFromInt(
330 pError,
331 (CONST dvoid*)_pv,
332 _size,
333 sign,
334 &__data.num
335 );
336 if (status != OCI_SUCCESS) {
338 return false;
339 }
340 }
341 #if 0
342 else if (_size == sizeof(int64_t)) {
343 ByteString str;
346 else
348
349 status = ::OCINumberFromText(
350 pError,
351 (CONST OraText*)str.data(),
352 str.length(),
354 0,
356 0,
357 &__data.num
358 );
359 if (status != OCI_SUCCESS) {
361 return false;
362 }
363 }
364 #endif
365 else {
367 return false;
368 }
373 break;
374 }
376 if (_size <= sizeof(double)) {
377 status = ::OCINumberFromReal(
378 pError,
379 (CONST dvoid*)_pv,
380 _size,
381 &__data.num
382 );
383 if (status != OCI_SUCCESS) {
385 return false;
386 }
387 }
388 else {
390 return false;
391 }
396 break;
397 }
399 if (_size == sizeof(SQL::Date)) {
400 const SQL::Date* p = (const SQL::Date*)_pv;
401 SQL::TimeStamp ts;
409 return false;
410 }
411 else {
413 return false;
414 }
415 break;
416 }
418
420 return false;
421 }
424 if (_size == sizeof(SQL::TimeStamp)) {
425 if (!
setTimeStamp((
const SQL::TimeStamp*)_pv, _size, _assignType))
426 return false;
427 }
428 else {
430 return false;
431 }
432 break;
433 }
437 if (_size == sizeof(SQL::Interval)) {
438 if (!
setInterval((
const SQL::Interval*)_pv, _size, _assignType))
439 return false;
440 }
441 else {
443 return false;
444 }
445 break;
446 }
449 status = ::OCINumberFromText(
450 pError,
451 (CONST OraText*)_pv,
452 _size,
454 0,
456 0,
457 &__data.num
458 );
459 if (status != OCI_SUCCESS) {
461 return false;
462 }
467 break;
468 }
469 }
473 switch (_assignType) {
477 break;
478 }
482 break;
483 }
487 break;
488 }
492 break;
493 }
494 default: {
496 return false;
497 }
498 }
501 break;
502 }
504 switch (_assignType) {
508 break;
509 }
513 break;
514 }
518 break;
519 }
523 break;
524 }
525 default: {
527 return false;
528 }
529 }
533 else
535 __inputStream = (InputStream*)_pv;
536 break;
537 }
538 default: {
540 return false;
541 }
542 }
543
544 Param::__dataType = _assignType;
545 __inputIndicator = 0;
546
547 return true;
548}
#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)