86 Field::__queryHandle = _queryHandle;
88 __sqlvar->sqlind = &__indicator;
96 Field::__name = UTF8Decoder::decode(__sqlvar->sqlname).toUpperCase();
104 switch(__sqlvar->sqltype & SQLTYPE) {
107 __maxDataSize =
sizeof(int16_t);
113 __maxDataSize =
sizeof(int32_t);
121 __maxDataSize =
sizeof(int64_t);
126 __maxDataSize =
sizeof(float);
131 __maxDataSize =
sizeof(double);
149 if (TU_START(__sqlvar->sqllen) >= TU_HOUR) {
160 if (TU_START(__sqlvar->sqllen) >= TU_DAY)
170 __maxDataSize = 32767;
181 __maxDataSize = 32739;
184 mint r = ifx_var_flag((
void**)(__sqlvar->sqldata), 1);
197 loc_t* loc = (loc_t*)(__sqlvar->sqldata);
198 loc->loc_loctype = LOCMEMORY;
199 loc->loc_buffer =
NULL;
200 loc->loc_bufsize = -1;
204 loc->loc_indicator = 0;
211 loc_t* loc = (loc_t*)(__sqlvar->sqldata);
212 loc->loc_loctype = LOCMEMORY;
213 loc->loc_buffer =
NULL;
214 loc->loc_bufsize = -1;
218 loc->loc_indicator = 0;
223 Field::__name.data(), __sqlvar->sqltype & SQLTYPE);
234 __name.data(), __sqlvar->sqllen, __indicator, __sqlvar->sqldata);
236 if (__indicator != -1) {
238 switch (__sqlvar->sqltype & SQLTYPE) {
246 __dataSize = __sqlvar->sqllen - 1;
251 __dataSize = ByteString::length(__sqlvar->sqldata, __sqlvar->sqllen);
256 int n = ifx_var_getlen((
void**)(__sqlvar->sqldata));
264 __dataSize = ByteString::length(__sqlvar->sqldata, __sqlvar->sqllen);
270 loc_t* loc = (loc_t*)(__sqlvar->sqldata);
271 if (loc->loc_status != 0) {
275 loc->loc_mflags = LOC_ALLOC;
277 if (loc->loc_indicator == -1)
280 __dataSize = loc->loc_size;
408 __DCL_VERIFY(rjulmdy(*(
long*)(__sqlvar->sqldata), mdy) == 0);
410 p->
nMonth = (uint8_t)mdy[0];
411 p->
nDay = (uint8_t)mdy[1];
418 (
const dtime_t*)(__sqlvar->sqldata),
426 (
const dtime_t*)(__sqlvar->sqldata),
436 (
const intrvl_t*)(__sqlvar->sqldata),
446 if (*_size < __dataSize) {
451 char* ps = (
char*)_pv;
453 (dec_t*)(__sqlvar->sqldata),
464 for (; uLen < *_size; uLen++) {
480 switch (__sqlvar->sqltype & SQLTYPE) {
483 int nLen = ifx_var_getlen((
void**)(__sqlvar->sqldata));
489 void* pSrc = ifx_var_getdata((
void**)(__sqlvar->sqldata));
490 if (nLen > 0 && *_size > 0 && pSrc !=
NULL) {
491 size_t nCopy = *_size;
492 if ((
size_t)nLen < nCopy)
493 nCopy = (size_t)nLen;
495 memcpy(_pv, pSrc, nCopy);
496 if (nCopy < *_size) {
497 *((
char*)_pv + nCopy) =
'\0';
511 if (__sqlvar->sqllen > 0 && *_size > 0) {
512 size_t nCopy = *_size;
513 if ((
size_t)(__sqlvar->sqllen) < nCopy)
514 nCopy = (size_t)(__sqlvar->sqllen);
516 memcpy(_pv, __sqlvar->sqldata, nCopy);
518 if (nCopy < *_size) {
519 *((
char*)_pv + nCopy) =
'\0';
529 if (((loc_t*)(__sqlvar->sqldata))->loc_size > 0
531 loc_t* loc = (loc_t*)(__sqlvar->sqldata);
532 size_t nCopy = *_size;
533 if ((
size_t)(loc->loc_size) < nCopy)
534 nCopy = (size_t)(loc->loc_size);
536 memcpy(_pv, loc->loc_buffer, nCopy);
537 if (nCopy < *_size) {
538 *((
char*)_pv + nCopy) =
'\0';
554 switch (__sqlvar->sqltype & SQLTYPE) {
559 if (__sqlvar->sqllen > 0 && *_size > 0) {
560 if ((
size_t)(__sqlvar->sqllen) < *_size)
561 *_size = (size_t)(__sqlvar->sqllen);
565 __sqlvar->sqldata, *_size);
579 int nLen = ifx_var_getlen((
void**)(__sqlvar->sqldata));
585 void* pSrc = ifx_var_getdata((
void**)(__sqlvar->sqldata));
586 if (nLen > 0 && *_size > 0 && pSrc !=
NULL) {
587 if ((
size_t)nLen < *_size)
588 *_size = (size_t)nLen;
607 if (((loc_t*)(__sqlvar->sqldata))->loc_size > 0) {
608 loc_t* loc = (loc_t*)(__sqlvar->sqldata);
610 if ((
size_t)(loc->loc_size) < *_size)
611 *_size = (size_t)(loc->loc_size);
616 loc->loc_buffer, *_size);
645 switch(__sqlvar->sqltype & SQLTYPE) {
648 case sizeof(int16_t) : {
649 *(int16_t*)_pv = *(int16_t*)(__sqlvar->sqldata);
652 case sizeof(int32_t) : {
653 *(int32_t*)_pv = (int32_t) * (int16_t*)(__sqlvar->sqldata);
656 case sizeof(int64_t) : {
657 *(int64_t*)_pv = (int64_t) * (int16_t*)(__sqlvar->sqldata);
661 *_size =
sizeof(int16_t);
671 case sizeof(int32_t) : {
672 *(int32_t*)_pv = *(int32_t*)(__sqlvar->sqldata);
675 case sizeof(int64_t) : {
676 *(int64_t*)_pv = (int64_t) * (int32_t*)(__sqlvar->sqldata);
680 *_size =
sizeof(int32_t);
690 case sizeof(int64_t) : {
691 *(int64_t*)_pv = (int64_t) * (int64_t*)(__sqlvar->sqldata);
695 *_size =
sizeof(int64_t);
704 if (*_size ==
sizeof(int64_t)) {
705 const ifx_int8_t* p = (
const ifx_int8_t*)__sqlvar->sqldata;
708 *(int64_t*)_pv = (int64_t) * (uint64_t*)(p->data);
710 *(int64_t*)_pv = -((int64_t) * (uint64_t*)(p->data));
713 *_size =
sizeof(int64_t);
721 if (*_size <=
sizeof(int32_t)) {
723 if (dectolong((dec_t*)__sqlvar->sqldata, &
n)) {
730 case sizeof(int8_t) : {
735 *(int8_t*)_pv = (int8_t)
n;
738 case sizeof(int16_t) : {
743 *(int16_t*)_pv = (int16_t)
n;
746 case sizeof(int32_t) : {
747 *(int32_t*)_pv = (int32_t)
n;
751 *_size =
sizeof(int32_t);
757 else if (*_size ==
sizeof(int64_t)) {
759 if (ifx_int8cvdec((dec_t*)__sqlvar->sqldata, &
n)) {
766 *(int64_t*)_pv = (int64_t) * (uint64_t*)(
n.data);
768 *(int64_t*)_pv = -((int64_t) * (uint64_t*)(
n.data));
771 *_size =
sizeof(int64_t);
786 switch(__sqlvar->sqltype & SQLTYPE) {
789 case sizeof(uint16_t) : {
790 *(uint16_t*)_pv = (uint16_t) * (int16_t*)(__sqlvar->sqldata);
793 case sizeof(uint32_t) : {
794 *(uint32_t*)_pv = (uint32_t) * (int16_t*)(__sqlvar->sqldata);
797 case sizeof(uint64_t) : {
798 *(uint64_t*)_pv = (uint64_t) * (int16_t*)(__sqlvar->sqldata);
802 *_size =
sizeof(uint16_t);
811 case sizeof(uint32_t) : {
812 *(uint32_t*)_pv = (uint32_t) * (int32_t*)(__sqlvar->sqldata);
815 case sizeof(int64_t) : {
816 *(uint64_t*)_pv = (uint64_t) * (int32_t*)(__sqlvar->sqldata);
820 *_size =
sizeof(int32_t);
830 case sizeof(int64_t) : {
831 *(uint64_t*)_pv = (uint64_t) * (int64_t*)(__sqlvar->sqldata);
835 *_size =
sizeof(uint64_t);
844 if (*_size ==
sizeof(int64_t)) {
845 const ifx_int8_t* p = (
const ifx_int8_t*)__sqlvar->sqldata;
848 *(uint64_t*)_pv = *(uint64_t*)(p->data);
850 *(uint64_t*)_pv = (uint64_t)(-((int64_t) * (uint64_t*)(p->data)));
853 *_size =
sizeof(int64_t);
861 if (*_size <=
sizeof(uint32_t)) {
863 if (dectolong((dec_t*)__sqlvar->sqldata, &
n)) {
870 case sizeof(uint8_t) : {
875 *(uint8_t*)_pv = (uint8_t)
n;
878 case sizeof(uint16_t) : {
883 *(uint16_t*)_pv = (uint16_t)
n;
886 case sizeof(uint32_t) : {
887 *(uint32_t*)_pv = (uint32_t)
n;
891 *_size =
sizeof(uint32_t);
897 else if (*_size ==
sizeof(uint64_t)) {
899 if (ifx_int8cvdec((dec_t*)__sqlvar->sqldata, &
n)) {
906 *(uint64_t*)_pv = *(uint64_t*)(
n.data);
908 *(uint64_t*)_pv = (uint64_t)(-((int64_t) * (uint64_t*)(
n.data)));
911 *_size =
sizeof(int64_t);