93 Field::__queryHandle = _queryHandle;
95 __sqlvar->sqlind = &__indicator;
103 Field::__name = UTF8Decoder::decode(__sqlvar->sqlname).toUpperCase();
111 switch(__sqlvar->sqltype & SQLTYPE) {
114 __maxDataSize =
sizeof(int8_t);
119 __maxDataSize =
sizeof(int16_t);
125 __maxDataSize =
sizeof(int32_t);
133 __maxDataSize =
sizeof(int64_t);
138 __maxDataSize =
sizeof(float);
143 __maxDataSize =
sizeof(double);
161 if (TU_START(__sqlvar->sqllen) >= TU_HOUR) {
172 if (TU_START(__sqlvar->sqllen) >= TU_DAY)
182 __maxDataSize = 32767;
193 __maxDataSize = 32739;
196 mint r = ifx_var_flag((
void**)(__sqlvar->sqldata), 1);
209 loc_t* loc = (loc_t*)(__sqlvar->sqldata);
210 loc->loc_loctype = LOCMEMORY;
211 loc->loc_buffer =
NULL;
212 loc->loc_bufsize = -1;
216 loc->loc_indicator = 0;
223 loc_t* loc = (loc_t*)(__sqlvar->sqldata);
224 loc->loc_loctype = LOCMEMORY;
225 loc->loc_buffer =
NULL;
226 loc->loc_bufsize = -1;
230 loc->loc_indicator = 0;
235 Field::__name.data(), __sqlvar->sqltype & SQLTYPE);
245 __DCL_TRACE4_N(L
"indicator[%2d] sqllen[%10d] rtypmsize[%10d][%ls]\n",
246 __indicator, __sqlvar->sqllen,
247 rtypmsize(__sqlvar->sqltype, __sqlvar->sqllen),
250 if (__indicator != -1) {
252 switch (__sqlvar->sqltype & SQLTYPE) {
260 __dataSize = __sqlvar->sqllen - 1;
265 __dataSize = ByteString::length(__sqlvar->sqldata, __sqlvar->sqllen);
270 int n = ifx_var_getlen((
void**)(__sqlvar->sqldata));
278 __dataSize = ByteString::length(__sqlvar->sqldata, __sqlvar->sqllen);
284 loc_t* loc = (loc_t*)(__sqlvar->sqldata);
285 if (loc->loc_status != 0) {
289 loc->loc_mflags = LOC_ALLOC;
291 if (loc->loc_indicator == -1)
294 __dataSize = loc->loc_size;
409 __DCL_VERIFY(rjulmdy(*(
long*)(__sqlvar->sqldata), mdy) == 0);
411 p->
month = (uint8_t)mdy[0];
412 p->
day = (uint8_t)mdy[1];
419 (
const dtime_t*)(__sqlvar->sqldata),
427 (
const dtime_t*)(__sqlvar->sqldata),
435 (
const intrvl_t*)(__sqlvar->sqldata),
444 if (*_size < __dataSize) {
448 char* ps = (
char*)_buf;
450 (dec_t*)(__sqlvar->sqldata),
460 for (; len < *_size; len++) {
472 switch (__sqlvar->sqltype & SQLTYPE) {
475 int nLen = ifx_var_getlen((
void**)(__sqlvar->sqldata));
481 void* pSrc = ifx_var_getdata((
void**)(__sqlvar->sqldata));
482 if (nLen > 0 && *_size > 0 && pSrc !=
NULL) {
483 size_t nCopy = *_size;
484 if ((
size_t)nLen < nCopy)
485 nCopy = (size_t)nLen;
487 memcpy(_buf, pSrc, nCopy);
488 if (nCopy < *_size) {
489 *((
char*)_buf + nCopy) =
'\0';
503 if (__sqlvar->sqllen > 0 && *_size > 0) {
504 size_t nCopy = *_size;
505 if ((
size_t)(__sqlvar->sqllen) < nCopy)
506 nCopy = (size_t)(__sqlvar->sqllen);
508 memcpy(_buf, __sqlvar->sqldata, nCopy);
510 if (nCopy < *_size) {
511 *((
char*)_buf + nCopy) =
'\0';
521 if (((loc_t*)(__sqlvar->sqldata))->loc_size > 0
523 loc_t* loc = (loc_t*)(__sqlvar->sqldata);
524 size_t nCopy = *_size;
525 if ((
size_t)(loc->loc_size) < nCopy)
526 nCopy = (size_t)(loc->loc_size);
528 memcpy(_buf, loc->loc_buffer, nCopy);
529 if (nCopy < *_size) {
530 *((
char*)_buf + nCopy) =
'\0';
546 switch (__sqlvar->sqltype & SQLTYPE) {
551 if (__sqlvar->sqllen > 0 && *_size > 0) {
552 if ((
size_t)(__sqlvar->sqllen) < *_size)
553 *_size = (size_t)(__sqlvar->sqllen);
557 __sqlvar->sqldata, *_size);
571 int nLen = ifx_var_getlen((
void**)(__sqlvar->sqldata));
577 void* pSrc = ifx_var_getdata((
void**)(__sqlvar->sqldata));
578 if (nLen > 0 && *_size > 0 && pSrc !=
NULL) {
579 if ((
size_t)nLen < *_size)
580 *_size = (size_t)nLen;
599 if (((loc_t*)(__sqlvar->sqldata))->loc_size > 0) {
600 loc_t* loc = (loc_t*)(__sqlvar->sqldata);
602 if ((
size_t)(loc->loc_size) < *_size)
603 *_size = (size_t)(loc->loc_size);
608 loc->loc_buffer, *_size);
637 switch(__sqlvar->sqltype & SQLTYPE) {
640 case sizeof(int8_t) : {
641 *(int8_t*)_buf = *(int8_t*)(__sqlvar->sqldata);
644 case sizeof(int16_t) : {
645 *(int16_t*)_buf = *(int8_t*)(__sqlvar->sqldata);
648 case sizeof(int32_t) : {
649 *(int32_t*)_buf = *(int8_t*)(__sqlvar->sqldata);
652 case sizeof(int64_t) : {
653 *(int64_t*)_buf = *(int8_t*)(__sqlvar->sqldata);
657 *_size =
sizeof(int8_t);
666 case sizeof(int16_t) : {
667 *(int16_t*)_buf = *(int16_t*)(__sqlvar->sqldata);
670 case sizeof(int32_t) : {
671 *(int32_t*)_buf = (int32_t) * (int16_t*)(__sqlvar->sqldata);
674 case sizeof(int64_t) : {
675 *(int64_t*)_buf = (int64_t) * (int16_t*)(__sqlvar->sqldata);
679 *_size =
sizeof(int16_t);
689 case sizeof(int32_t) : {
690 *(int32_t*)_buf = *(int32_t*)(__sqlvar->sqldata);
693 case sizeof(int64_t) : {
694 *(int64_t*)_buf = (int64_t) * (int32_t*)(__sqlvar->sqldata);
698 *_size =
sizeof(int32_t);
708 case sizeof(int64_t) : {
709 *(int64_t*)_buf = (int64_t) * (int64_t*)(__sqlvar->sqldata);
713 *_size =
sizeof(int64_t);
722 if (*_size ==
sizeof(int64_t)) {
723 const ifx_int8_t* p = (
const ifx_int8_t*)__sqlvar->sqldata;
726 *(int64_t*)_buf = (int64_t) * (uint64_t*)(p->data);
728 *(int64_t*)_buf = -((int64_t) * (uint64_t*)(p->data));
731 *_size =
sizeof(int64_t);
739 if (*_size <=
sizeof(int32_t)) {
741 if (dectolong((dec_t*)__sqlvar->sqldata, &n)) {
748 case sizeof(int8_t) : {
753 *(int8_t*)_buf = (int8_t)n;
756 case sizeof(int16_t) : {
761 *(int16_t*)_buf = (int16_t)n;
764 case sizeof(int32_t) : {
765 *(int32_t*)_buf = (int32_t)n;
769 *_size =
sizeof(int32_t);
775 else if (*_size ==
sizeof(int64_t)) {
777 if (ifx_int8cvdec((dec_t*)__sqlvar->sqldata, &n)) {
784 *(int64_t*)_buf = (int64_t) * (uint64_t*)(n.data);
786 *(int64_t*)_buf = -((int64_t) * (uint64_t*)(n.data));
789 *_size =
sizeof(int64_t);
804 switch(__sqlvar->sqltype & SQLTYPE) {
807 case sizeof(uint8_t) : {
808 *(uint8_t*)_buf = *(uint8_t*)(__sqlvar->sqldata);
811 case sizeof(uint16_t) : {
812 *(uint16_t*)_buf = *(uint8_t*)(__sqlvar->sqldata);
815 case sizeof(uint32_t) : {
816 *(uint32_t*)_buf = *(uint8_t*)(__sqlvar->sqldata);
819 case sizeof(uint64_t) : {
820 *(uint64_t*)_buf = *(uint8_t*)(__sqlvar->sqldata);
824 *_size =
sizeof(uint8_t);
833 case sizeof(uint16_t) : {
834 *(uint16_t*)_buf = (uint16_t) * (int16_t*)(__sqlvar->sqldata);
837 case sizeof(uint32_t) : {
838 *(uint32_t*)_buf = (uint32_t) * (int16_t*)(__sqlvar->sqldata);
841 case sizeof(uint64_t) : {
842 *(uint64_t*)_buf = (uint64_t) * (int16_t*)(__sqlvar->sqldata);
846 *_size =
sizeof(uint16_t);
855 case sizeof(uint32_t) : {
856 *(uint32_t*)_buf = (uint32_t) * (int32_t*)(__sqlvar->sqldata);
859 case sizeof(int64_t) : {
860 *(uint64_t*)_buf = (uint64_t) * (int32_t*)(__sqlvar->sqldata);
864 *_size =
sizeof(int32_t);
874 case sizeof(int64_t) : {
875 *(uint64_t*)_buf = (uint64_t) * (int64_t*)(__sqlvar->sqldata);
879 *_size =
sizeof(uint64_t);
888 if (*_size ==
sizeof(int64_t)) {
889 const ifx_int8_t* p = (
const ifx_int8_t*)__sqlvar->sqldata;
892 *(uint64_t*)_buf = *(uint64_t*)(p->data);
894 *(uint64_t*)_buf = (uint64_t)(-((int64_t) * (uint64_t*)(p->data)));
897 *_size =
sizeof(int64_t);
905 if (*_size <=
sizeof(uint32_t)) {
907 if (dectolong((dec_t*)__sqlvar->sqldata, &n)) {
914 case sizeof(uint8_t) : {
919 *(uint8_t*)_buf = (uint8_t)n;
922 case sizeof(uint16_t) : {
927 *(uint16_t*)_buf = (uint16_t)n;
930 case sizeof(uint32_t) : {
931 *(uint32_t*)_buf = (uint32_t)n;
935 *_size =
sizeof(uint32_t);
941 else if (*_size ==
sizeof(uint64_t)) {
943 if (ifx_int8cvdec((dec_t*)__sqlvar->sqldata, &n)) {
950 *(uint64_t*)_buf = *(uint64_t*)(n.data);
952 *(uint64_t*)_buf = (uint64_t)(-((int64_t) * (uint64_t*)(n.data)));
955 *_size =
sizeof(int64_t);