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->
month = (uint8_t)mdy[0];
411 p->
day = (uint8_t)mdy[1];
418 (
const dtime_t*)(__sqlvar->sqldata),
426 (
const dtime_t*)(__sqlvar->sqldata),
434 (
const intrvl_t*)(__sqlvar->sqldata),
443 if (*_size < __dataSize) {
447 char* ps = (
char*)_pv;
449 (dec_t*)(__sqlvar->sqldata),
459 for (;
len < *_size;
len++) {
471 switch (__sqlvar->sqltype & SQLTYPE) {
474 int nLen = ifx_var_getlen((
void**)(__sqlvar->sqldata));
480 void* pSrc = ifx_var_getdata((
void**)(__sqlvar->sqldata));
481 if (nLen > 0 && *_size > 0 && pSrc !=
NULL) {
482 size_t nCopy = *_size;
483 if ((
size_t)nLen < nCopy)
484 nCopy = (size_t)nLen;
486 memcpy(_pv, pSrc, nCopy);
487 if (nCopy < *_size) {
488 *((
char*)_pv + nCopy) =
'\0';
502 if (__sqlvar->sqllen > 0 && *_size > 0) {
503 size_t nCopy = *_size;
504 if ((
size_t)(__sqlvar->sqllen) < nCopy)
505 nCopy = (size_t)(__sqlvar->sqllen);
507 memcpy(_pv, __sqlvar->sqldata, nCopy);
509 if (nCopy < *_size) {
510 *((
char*)_pv + nCopy) =
'\0';
520 if (((loc_t*)(__sqlvar->sqldata))->loc_size > 0
522 loc_t* loc = (loc_t*)(__sqlvar->sqldata);
523 size_t nCopy = *_size;
524 if ((
size_t)(loc->loc_size) < nCopy)
525 nCopy = (size_t)(loc->loc_size);
527 memcpy(_pv, loc->loc_buffer, nCopy);
528 if (nCopy < *_size) {
529 *((
char*)_pv + nCopy) =
'\0';
545 switch (__sqlvar->sqltype & SQLTYPE) {
550 if (__sqlvar->sqllen > 0 && *_size > 0) {
551 if ((
size_t)(__sqlvar->sqllen) < *_size)
552 *_size = (size_t)(__sqlvar->sqllen);
556 __sqlvar->sqldata, *_size);
570 int nLen = ifx_var_getlen((
void**)(__sqlvar->sqldata));
576 void* pSrc = ifx_var_getdata((
void**)(__sqlvar->sqldata));
577 if (nLen > 0 && *_size > 0 && pSrc !=
NULL) {
578 if ((
size_t)nLen < *_size)
579 *_size = (size_t)nLen;
598 if (((loc_t*)(__sqlvar->sqldata))->loc_size > 0) {
599 loc_t* loc = (loc_t*)(__sqlvar->sqldata);
601 if ((
size_t)(loc->loc_size) < *_size)
602 *_size = (size_t)(loc->loc_size);
607 loc->loc_buffer, *_size);
636 switch(__sqlvar->sqltype & SQLTYPE) {
639 case sizeof(int16_t) : {
640 *(int16_t*)_pv = *(int16_t*)(__sqlvar->sqldata);
643 case sizeof(int32_t) : {
644 *(int32_t*)_pv = (int32_t) * (int16_t*)(__sqlvar->sqldata);
647 case sizeof(int64_t) : {
648 *(int64_t*)_pv = (int64_t) * (int16_t*)(__sqlvar->sqldata);
652 *_size =
sizeof(int16_t);
662 case sizeof(int32_t) : {
663 *(int32_t*)_pv = *(int32_t*)(__sqlvar->sqldata);
666 case sizeof(int64_t) : {
667 *(int64_t*)_pv = (int64_t) * (int32_t*)(__sqlvar->sqldata);
671 *_size =
sizeof(int32_t);
681 case sizeof(int64_t) : {
682 *(int64_t*)_pv = (int64_t) * (int64_t*)(__sqlvar->sqldata);
686 *_size =
sizeof(int64_t);
695 if (*_size ==
sizeof(int64_t)) {
696 const ifx_int8_t* p = (
const ifx_int8_t*)__sqlvar->sqldata;
699 *(int64_t*)_pv = (int64_t) * (uint64_t*)(p->data);
701 *(int64_t*)_pv = -((int64_t) * (uint64_t*)(p->data));
704 *_size =
sizeof(int64_t);
712 if (*_size <=
sizeof(int32_t)) {
714 if (dectolong((dec_t*)__sqlvar->sqldata, &
n)) {
721 case sizeof(int8_t) : {
726 *(int8_t*)_pv = (int8_t)
n;
729 case sizeof(int16_t) : {
734 *(int16_t*)_pv = (int16_t)
n;
737 case sizeof(int32_t) : {
738 *(int32_t*)_pv = (int32_t)
n;
742 *_size =
sizeof(int32_t);
748 else if (*_size ==
sizeof(int64_t)) {
750 if (ifx_int8cvdec((dec_t*)__sqlvar->sqldata, &
n)) {
757 *(int64_t*)_pv = (int64_t) * (uint64_t*)(
n.data);
759 *(int64_t*)_pv = -((int64_t) * (uint64_t*)(
n.data));
762 *_size =
sizeof(int64_t);
777 switch(__sqlvar->sqltype & SQLTYPE) {
780 case sizeof(uint16_t) : {
781 *(uint16_t*)_pv = (uint16_t) * (int16_t*)(__sqlvar->sqldata);
784 case sizeof(uint32_t) : {
785 *(uint32_t*)_pv = (uint32_t) * (int16_t*)(__sqlvar->sqldata);
788 case sizeof(uint64_t) : {
789 *(uint64_t*)_pv = (uint64_t) * (int16_t*)(__sqlvar->sqldata);
793 *_size =
sizeof(uint16_t);
802 case sizeof(uint32_t) : {
803 *(uint32_t*)_pv = (uint32_t) * (int32_t*)(__sqlvar->sqldata);
806 case sizeof(int64_t) : {
807 *(uint64_t*)_pv = (uint64_t) * (int32_t*)(__sqlvar->sqldata);
811 *_size =
sizeof(int32_t);
821 case sizeof(int64_t) : {
822 *(uint64_t*)_pv = (uint64_t) * (int64_t*)(__sqlvar->sqldata);
826 *_size =
sizeof(uint64_t);
835 if (*_size ==
sizeof(int64_t)) {
836 const ifx_int8_t* p = (
const ifx_int8_t*)__sqlvar->sqldata;
839 *(uint64_t*)_pv = *(uint64_t*)(p->data);
841 *(uint64_t*)_pv = (uint64_t)(-((int64_t) * (uint64_t*)(p->data)));
844 *_size =
sizeof(int64_t);
852 if (*_size <=
sizeof(uint32_t)) {
854 if (dectolong((dec_t*)__sqlvar->sqldata, &
n)) {
861 case sizeof(uint8_t) : {
866 *(uint8_t*)_pv = (uint8_t)
n;
869 case sizeof(uint16_t) : {
874 *(uint16_t*)_pv = (uint16_t)
n;
877 case sizeof(uint32_t) : {
878 *(uint32_t*)_pv = (uint32_t)
n;
882 *_size =
sizeof(uint32_t);
888 else if (*_size ==
sizeof(uint64_t)) {
890 if (ifx_int8cvdec((dec_t*)__sqlvar->sqldata, &
n)) {
897 *(uint64_t*)_pv = *(uint64_t*)(
n.data);
899 *(uint64_t*)_pv = (uint64_t)(-((int64_t) * (uint64_t*)(
n.data)));
902 *_size =
sizeof(int64_t);