CLIP_DLLEXPORT C_object* _fetch_co_arg(ClipMachine* cm) { C_object* cobj; if (_clip_parinfo(cm,1)==NUMERIC_t) { cobj = (C_object*)_clip_fetch_c_item(cm,_clip_parni(cm,1), _C_ITEM_TYPE_WIDGET); } else { if (_clip_parinfo(cm,1)==MAP_t) { double h; _clip_mgetn(cm, _clip_spar(cm,1), HASH_HANDLE, &h); cobj = (C_object *) _clip_fetch_c_item(cm, (int) h, _C_ITEM_TYPE_WIDGET); } else { _clip_trap_err(cm,EG_ARG,0,0,"CLIP_GTK_SYSTEM", EG_ARG,"Bad object descriptor"); return NULL; } } if(!cobj) { _clip_trap_err(cm,EG_ARG,0,0,"CLIP_GTK_SYSTEM", EG_ARG,"Bad object descriptor"); return NULL; } return cobj; }
int clip_PG_OUT_DATETIME(ClipMachine* mp){ PG_ROWSET* rowset = (PG_ROWSET*)_clip_fetch_c_item( mp,_clip_parni(mp,1),_C_ITEM_TYPE_SQL); long time; long date = _clip_pardtj(mp,2,&time); int totext = _clip_parl(mp,3); if(!rowset){ _clip_trap_err(mp,0,0,0,subsys,ER_NOROWSET,er_norowset); return 1; } if((!totext)&&rowset->binary){ long l = date - _clip_jdate(1,1,2000); double d = l*(24*60*60) + time/1000; _clip_retcn(mp,(char*)&d,8); } else { char str[26]; int y,m,d,w,h,mm,s,t,q; _clip_cdate(date,&d,&m,&y,&w); h = time/(60*60*1000); q = time%(60*60*1000); mm = q/(60*1000); q %= 60*1000; s = q/(1000); t = q%1000; snprintf(str,sizeof(str),"%04d-%02d-%02d %02d:%02d:%02d.%02d+00",y,m,d,h,mm,s,t); _clip_retc(mp,str); } return 0; }
int clip_HS_REMOVE(ClipMachine * ClipMachineMemory) { const char *__PROC__ = "HS_REMOVE"; int h = _clip_parni(ClipMachineMemory, 1); unsigned int rno = _clip_parni(ClipMachineMemory, 2); HIPER *hs; int er; CHECKARG1(1, NUMERIC_type_of_ClipVarType); CHECKARG1(2, NUMERIC_type_of_ClipVarType); hs = _clip_fetch_c_item(ClipMachineMemory, h, _C_ITEM_TYPE_HIPER); if (!hs) { er = rdd_err(ClipMachineMemory, EG_ARG, 0, __FILE__, __LINE__, __PROC__, er_badhiper); goto err; } if ((er = hs_remove(ClipMachineMemory, hs, rno, __PROC__))) goto err; _clip_retni(ClipMachineMemory, 1); return 0; err: return er; }
int clip_M6_FILTCOPY(ClipMachine * ClipMachineMemory) { const char *__PROC__ = "M6_FILTCOPY"; int h = _clip_parni(ClipMachineMemory, 1); RDD_FILTER *fp; RDD_FILTER *ret; int er; ClipMachineMemory->m6_error = 0; CHECKARG1(1, NUMERIC_type_of_ClipVarType); fp = (RDD_FILTER *) _clip_fetch_c_item(ClipMachineMemory, h, _C_ITEM_TYPE_RYO); if (!fp) { er = rdd_err(ClipMachineMemory, EG_ARG, 0, __FILE__, __LINE__, __PROC__, er_badfilter); goto err; } if ((er = rm_copyfilter(ClipMachineMemory, fp, &ret, __PROC__))) goto err; _clip_retni(ClipMachineMemory, ret->handle); return 0; err: return er; }
int clip_FREAD(ClipMachine * ClipMachineMemory) { #if 0 int ret, *err, bl; int fh = _clip_parni(ClipMachineMemory, 1); char *buf = _clip_parcl(ClipMachineMemory, 2, &bl); int kol = _clip_parni(ClipMachineMemory, 3); if (bl < kol) kol = bl; ret = read(fh, buf, kol); err = _clip_fetch_item(ClipMachineMemory, HASH_ferror); if (ret < 0) *err = errno; else *err = 0; #else int *err = _clip_fetch_item(ClipMachineMemory, HASH_ferror); int fd = _clip_parni(ClipMachineMemory, 1), lenbuf = 0; char *buf = _clip_parcl(ClipMachineMemory, 2, &lenbuf); long ret = -1, nb = _clip_parnl(ClipMachineMemory, 3); C_FILE *cf = _clip_fetch_c_item(ClipMachineMemory, fd, _C_ITEM_TYPE_FILE); _clip_retnl(ClipMachineMemory, -1); if (cf == NULL) { *err = EBADF; return 0; } if (lenbuf < nb) nb = lenbuf; if (nb > 0) { if (cf->file_of_C_FILE == NULL || (cf->stat_of_C_FILE & FS_BUFFERED) == 0) ret = _clip_read(cf, buf, nb); else ret = fread(buf, 1, nb, cf->file_of_C_FILE); } else ret = 0; *err = ret < 0 ? errno : 0; #endif _clip_retnl(ClipMachineMemory, ret); return 0; }
int clip_COM_RTS(ClipMachine * mp) { v24_port_t *gz; int fd = _clip_parni(mp, 1); int flag = _clip_parl(mp, 2); int oflag; if (fd < 1 || fd > 32) return EG_ARG; fd = keys[fd]; gz = (v24_port_t *) _clip_fetch_c_item(mp, fd, _C_ITEM_TYPE_COMPORT); if (!gz) return (EG_ARG); oflag = 0; if (mp->argc > 1) { oflag = v24SetRTS(gz, flag); } _clip_retl(mp, oflag ? 0 : 1); return 0; }
/* COM_HARD(<nComPort>,<lNewHandshake>,[<lDTR/DSR>]) --> lOldHandshake */ int clip_COM_HARD(ClipMachine * mp) { v24_port_t *gz; int fd = _clip_parni(mp, 1); int flag = _clip_parl(mp, 2); int oflag; if (fd < 1 || fd > 32) return EG_ARG; fd = keys[fd]; gz = (v24_port_t *) _clip_fetch_c_item(mp, fd, _C_ITEM_TYPE_COMPORT); if (!gz) return (EG_ARG); oflag = gz->OpenFlags & V24_RTS_CTS; if (mp->argc > 1) { if (flag) gz->OpenFlags |= V24_RTS_CTS; else gz->OpenFlags &= ~V24_RTS_CTS; v24SetParameters(gz, gz->Baudrate, gz->Datasize, gz->Parity); } _clip_retl(mp, oflag ? 1 : 0); return 0; }
/* COM_TIMEOUT(<nComPort>,[<nTimeout]) --> nOldTimeout nTimeout in 1/10 sec */ int clip_COM_TIMEOUT(ClipMachine * mp) { v24_port_t *gz; int fd = _clip_parni(mp, 1); int to = _clip_parni(mp, 2); int oto; if (fd < 1 || fd > 32) return EG_ARG; fd = keys[fd]; gz = (v24_port_t *) _clip_fetch_c_item(mp, fd, _C_ITEM_TYPE_COMPORT); if (gz == NULL) { return EG_ARG; } oto = gz->TimeoutValue; if (mp->argc > 1) { v24SetTimeouts(gz, to); } _clip_retni(mp, oto); return 0; }
int clip_COM_INIT(ClipMachine * mp) { v24_port_t *gz; int ret = -1, *err; int fd = _clip_parni(mp, 1); int baud = 9600, data = 8, stop = 1; char *parity = "N"; if (fd < 1 || fd > 32) return EG_ARG; fd = keys[fd]; gz = (v24_port_t *) _clip_fetch_c_item(mp, fd, _C_ITEM_TYPE_COMPORT); if (!gz) return EG_ARG; if (_clip_parinfo(mp, 2) == NUMERIC_t) baud = _clip_parni(mp, 2); if (_clip_parinfo(mp, 3) == CHARACTER_t) parity = _clip_parc(mp, 3); if (_clip_parinfo(mp, 4) == NUMERIC_t) data = _clip_parni(mp, 4); if (_clip_parinfo(mp, 5) == NUMERIC_t) stop = _clip_parni(mp, 5); err = _clip_fetch_item(mp, HASH_ferror); ret = v24SetParameters(gz, baud_val(baud), data_val(data), parity_val(parity)); _clip_retl(mp, ret ? 0 : 1); return 0; }
int clip_SQLPREPARE(ClipMachine * ClipMachineMemory) { SQLCONN *conn = (SQLCONN *) _clip_fetch_c_item(ClipMachineMemory, _clip_parni(ClipMachineMemory, 1), _C_ITEM_TYPE_SQL); char *sql = _clip_parc(ClipMachineMemory, 2); int res; if (!conn) { _clip_trap_err(ClipMachineMemory, 0, 0, 0, subsys, ER_NOCONNECT, er_noconnect); return 1; } if (!sql) { _clip_trap_err(ClipMachineMemory, 0, 0, 0, subsys, ER_NOSQL, er_nosql); return 1; } if ((res = conn->vtbl->prepare(ClipMachineMemory, conn, sql)) == -1) return 1; _clip_retni(ClipMachineMemory, res); return 0; }
int clip_PG_OUT_TIMESTAMP(ClipMachine* mp){ PG_ROWSET* rowset = (PG_ROWSET*)_clip_fetch_c_item( mp,_clip_parni(mp,1),_C_ITEM_TYPE_SQL); int totext = _clip_parl(mp,3); struct tm time; time_t bindate; char* date; int len; if(!rowset){ _clip_trap_err(mp,0,0,0,subsys,ER_NOROWSET,er_norowset); return 1; } if((!totext)&&rowset->binary){ memset(&time,0,sizeof(time)); _clip_pardc(mp,2,&time.tm_year,&time.tm_mon,&time.tm_mday,&time.tm_wday); time.tm_year -= 1900; time.tm_mon--; bindate = mktime(&time); _clip_retcn(mp,(char*)(&bindate),4); } else { date = _clip_parcl(mp,2,&len); _clip_retc(mp,date); // char str[25]; // _pg_out_date(mp,str,rowset->conn->datestyle,rowset->conn->textdate,_clip_pardj(mp,2)); // _clip_retc(mp,str); } return 0; }
int clip_PG_IN_DATETIME(ClipMachine* mp){ PG_ROWSET* rowset = (PG_ROWSET*)_clip_fetch_c_item( mp,_clip_parni(mp,1),_C_ITEM_TYPE_SQL); char* date; long dd,tt; if(!rowset){ _clip_trap_err(mp,0,0,0,subsys,ER_NOROWSET,er_norowset); return 1; } if(rowset->binary){ double d; int l; date = _clip_parcl(mp,2,&l); d = *(double*)date; dd = _clip_jdate(1,1,2000)+d/(24*60*60); tt = ((long long)d*1000) % (24*60*60*1000); if(tt < 0) tt += 24*60*60*1000; _clip_retdtj(mp,dd,tt); } else { int l; date = _clip_parcl(mp,2,&l); _pg_in_iso_datetime(date,l,&dd,&tt); _clip_retdtj(mp,dd,tt); } return 0; }
int clip_PG_IN_DATE(ClipMachine* mp){ PG_ROWSET* rowset = (PG_ROWSET*)_clip_fetch_c_item( mp,_clip_parni(mp,1),_C_ITEM_TYPE_SQL); char* date; int len; if(!rowset){ _clip_trap_err(mp,0,0,0,subsys,ER_NOROWSET,er_norowset); return 1; } if(rowset->binary){ date = _clip_parcl(mp,2,&len); if(date){ _clip_retdj(mp,*((int*)date)+2451545); // 2451545 - julian date } // for 01/01/2000 } else { int m,d,y; date = _clip_parc(mp,2); if(date){ y = atoi(date); m = atoi(date+5); d = atoi(date+8); _clip_retdc(mp,y,m,d); } else { _clip_retdj(mp,0); } } return 0; }
int rdd_ii_skip(ClipMachine * ClipMachineMemory, int h, int recs, const char *__PROC__) { RDD_ORDER *ro = (RDD_ORDER *) _clip_fetch_c_item(ClipMachineMemory, h, _C_ITEM_TYPE_I_ORDER); int i; int er; CHECKIO(ro); if (recs > 0) { for (i = 0; i < recs; i++) { if ((er = ro->vtbl->ii_next(ClipMachineMemory, ro, __PROC__))) return er; } } else { for (i = 0; i > recs; i--) { if ((er = ro->vtbl->ii_prev(ClipMachineMemory, ro, __PROC__))) return er; } } return 0; }
int clip_HS_DELETE(ClipMachine * ClipMachineMemory) { const char *__PROC__ = "HS_DELETE"; int h = _clip_parni(ClipMachineMemory, 1); unsigned int rec = _clip_parni(ClipMachineMemory, 2); HIPER *hs; int er; CHECKARG1(1, NUMERIC_type_of_ClipVarType); CHECKARG1(2, NUMERIC_type_of_ClipVarType); hs = _clip_fetch_c_item(ClipMachineMemory, h, _C_ITEM_TYPE_HIPER); if (!hs) { er = rdd_err(ClipMachineMemory, EG_ARG, 0, __FILE__, __LINE__, __PROC__, er_badhiper); goto err; } _rm_setbit(hs->map, hs->lastrec, rec); _clip_retni(ClipMachineMemory, 1); return 0; err: return er; }
int rdd_ii_gobottom(ClipMachine * ClipMachineMemory, int h, const char *__PROC__) { RDD_ORDER *ro = (RDD_ORDER *) _clip_fetch_c_item(ClipMachineMemory, h, _C_ITEM_TYPE_I_ORDER); CHECKIO(ro); return ro->vtbl->ii_gobottom(ClipMachineMemory, ro, __PROC__); }
int clip_SQLFILLORDERS(ClipMachine * ClipMachineMemory) { int rowset_item = _clip_parni(ClipMachineMemory, 1); SQLROWSET *rowset = (SQLROWSET *) _clip_fetch_c_item(ClipMachineMemory, rowset_item, _C_ITEM_TYPE_SQL); return sql_fillorders(ClipMachineMemory, rowset); }
int clip_UDPSENDTO(ClipMachine *mp) // UDPSENDTO( nCF, cIPaddr, nPort, cMsg, [nLen], [nTimeout] ) { int fd = _clip_parni(mp, 1); C_FILE *cf = (C_FILE *) _clip_fetch_c_item(mp, fd, _C_ITEM_TYPE_FILE); char *ipaddr = _clip_parc(mp, 2); int port = _clip_parni(mp,3), lenbuf; char *msg = _clip_parcl(mp,4, &lenbuf); long len = _clip_parnl(mp,5); int timeout = _clip_parni(mp,6); int ret = -1, *err = _clip_fetch_item(mp, HASH_ferror); struct sockaddr_in sin; struct timeval tv; fd_set set; if (cf == NULL || cf->type != FT_SOCKET) *err = EBADF; else { if (_clip_parinfo(mp, 5) != NUMERIC_t) len = lenbuf; if (len > lenbuf) len = lenbuf; if (_clip_parinfo(mp, 6) != NUMERIC_t) timeout = cf->timeout; if ( timeout >= 0 ) { FD_ZERO(&set); FD_SET(cf->fileno, &set); tv.tv_sec = timeout / 1000; tv.tv_usec = (timeout % 1000) * 1000; } memset( (void *) &sin, 0, sizeof(sin) ); sin.sin_family = PF_INET; sin.sin_addr.s_addr = inet_addr(ipaddr); sin.sin_port = htons(port); if ( timeout < 0 || select( cf->fileno+1, NULL, &set, NULL, &tv ) > 0 ) { ret = sendto( cf->fileno, msg, len, 0, (struct sockaddr *) &sin, sizeof(sin) ); *err = ret == -1 ? errno : 0; } else #ifdef OS_MINGW *err = EAGAIN; #else *err = ETIMEDOUT; #endif } _clip_retnl(mp, ret); return 0; }
int clip_PG_ISBINARY(ClipMachine* mp){ PG_ROWSET* rowset = (PG_ROWSET*)_clip_fetch_c_item( mp,_clip_parni(mp,1),_C_ITEM_TYPE_SQL); if(!rowset){ _clip_trap_err(mp,0,0,0,subsys,ER_NOROWSET,er_norowset); return 1; } _clip_retl(mp,rowset->binary); return 0; }
int clip_FSEEK(ClipMachine * ClipMachineMemory) { int fd = _clip_parni(ClipMachineMemory, 1); long nb = _clip_parnl(ClipMachineMemory, 2); int whence = SEEK_SET, w = _clip_parni(ClipMachineMemory, 3), *err, ret = -1; C_FILE *cf = _clip_fetch_c_item(ClipMachineMemory, fd, _C_ITEM_TYPE_FILE); err = _clip_fetch_item(ClipMachineMemory, HASH_ferror); *err = 0; _clip_retnl(ClipMachineMemory, -1); if (cf == NULL) { *err = EBADF; return 0; } else if (cf->type_of_C_FILE == FT_FIFO || cf->type_of_C_FILE == FT_SOCKET) { *err = ESPIPE; return 0; } switch (w) { case 0: whence = SEEK_SET; break; case 1: whence = SEEK_CUR; break; case 2: whence = SEEK_END; break; } if (cf->file_of_C_FILE == NULL || (cf->stat_of_C_FILE & FS_BUFFERED) == 0) { if ((ret = lseek(cf->fileno_of_C_FILE, nb, whence)) == -1) *err = errno; } else { if ((ret = fseek(cf->file_of_C_FILE, nb, whence)) == -1) *err = errno; else ret = ftell(cf->file_of_C_FILE); } _clip_retnl(ClipMachineMemory, ret); return 0; }
int clip_TCPGETPEERNAME(ClipMachine * ClipMachineMemory) /* Get the address of the peer to which a socket is connected. using : tcpGetPeerName( sock, @cIPadr ) -> 0 - OK | -1 == error */ { int ret = -1, sln; int *err = _clip_fetch_item(ClipMachineMemory, HASH_ferror); int fd = _clip_parni(ClipMachineMemory, 1); C_FILE *cf = _clip_fetch_c_item(ClipMachineMemory, fd, _C_ITEM_TYPE_FILE); char ipaddr[INET_ADDRSTRLEN]; struct sockaddr_in sin; _clip_retnl(ClipMachineMemory, -1); if (cf == NULL || cf->type_of_C_FILE != FT_SOCKET) { *err = EBADF; } else { sln = sizeof(sin); ret = getpeername(cf->fileno_of_C_FILE, (struct sockaddr *) &sin, (socklen_t *) (&sln)); *err = ret < 0 ? errno : 0; if (ret >= 0) { #ifdef _WIN32 _clip_storc(ClipMachineMemory, inet_ntoa(*(struct in_addr *) ipaddr), 2, 0); #else if (inet_ntop(PF_INET, &sin.sin_addr.s_addr, ipaddr, INET_ADDRSTRLEN) == NULL) ret = -1; else _clip_storc(ClipMachineMemory, ipaddr, 2, 0); #endif _clip_storni(ClipMachineMemory, ntohs(sin.sin_port), 3, 0); } else _clip_storni(ClipMachineMemory, -1, 3, 0); } _clip_retnl(ClipMachineMemory, ret); return 0; }
int clip_SQLBOF(ClipMachine * ClipMachineMemory) { SQLROWSET *rowset = (SQLROWSET *) _clip_fetch_c_item(ClipMachineMemory, _clip_parni(ClipMachineMemory, 1), _C_ITEM_TYPE_SQL); if (!rowset) { _clip_trap_err(ClipMachineMemory, 0, 0, 0, subsys, ER_NOROWSET, er_norowset); return 1; } _clip_retl(ClipMachineMemory, rowset->bof ? 1 : 0); return 0; }
int clip_SQLSETVALUE(ClipMachine * ClipMachineMemory) { SQLROWSET *rowset = (SQLROWSET *) _clip_fetch_c_item(ClipMachineMemory, _clip_parni(ClipMachineMemory, 1), _C_ITEM_TYPE_SQL); int fieldno = _clip_parni(ClipMachineMemory, 2) - 1; int len, k; char *value = _clip_parcl(ClipMachineMemory, 3, &len); SQLORDER *order; if (!rowset) { _clip_trap_err(ClipMachineMemory, 0, 0, 0, subsys, ER_NOROWSET, er_norowset); return 1; } if (fieldno < 0 || fieldno >= rowset->nfields) { _clip_trap_err(ClipMachineMemory, 0, 0, 0, subsys, ER_NOFIELD, er_nofield); return 1; } if (!value) len = 0; if (!rowset->newrec) { for (k = 0; k < rowset->ntags; k++) { order = (SQLORDER *) HashTable_fetch(rowset->orders, rowset->taghashes[k]); if (sql_searchtree(ClipMachineMemory, rowset, order)) return 1; if (sql_orderdel(ClipMachineMemory, rowset, rowset->taghashes[k])) return 1; } } rowset->conn->vtbl->setvalue(rowset, fieldno, value, len); if (!rowset->newrec) { for (k = 0; k < rowset->ntags; k++) { order = (SQLORDER *) HashTable_fetch(rowset->orders, rowset->taghashes[k]); if (sql_orderadd(ClipMachineMemory, rowset, rowset->taghashes[k])) return 1; } } return 0; }
CLIP_DLLEXPORT C_object* _fetch_cobjectn(ClipMachine* cm, int h) { C_object* cobj; cobj = (C_object*)_clip_fetch_c_item(cm,h,_C_ITEM_TYPE_WIDGET); if(!cobj) { /* _clip_trap_err(cm,EG_ARG,0,0,"CLIP_GTK_SYSTEM", EG_ARG,"Bad widget descriptor"); */ return NULL; } return cobj; }
CLIP_DLLEXPORT C_object* _fetch_cobject(ClipMachine* cm, ClipVar* cv) { C_object* cobj; if (!cv) return NULL; if (cv->t.type == NUMERIC_t) { cobj = (C_object*)_clip_fetch_c_item(cm,cv->n.d, _C_ITEM_TYPE_WIDGET); } else { if (cv->t.type == MAP_t) { double h; _clip_mgetn(cm, cv, HASH_HANDLE, &h); cobj = (C_object *) _clip_fetch_c_item(cm, (int) h, _C_ITEM_TYPE_WIDGET); } else { /* _clip_trap_err(cm,EG_ARG,0,0,"CLIP_GTK_SYSTEM", EG_ARG,"Bad widget descriptor"); */ return NULL; } } if(!cobj) { /* _clip_trap_err(cm,EG_ARG,0,0,"CLIP_GTK_SYSTEM", EG_ARG,"Bad widget descriptor"); */ return NULL; } return cobj; }
void * map_get_data(ClipMachine * cm, ClipVar * map) { double h; C_widget *cwid; if (!map || map->t.type != MAP_t) goto err; if (_clip_mgetn(cm, map, HASH_HANDLE, &h) != 0) goto err; cwid = (C_widget *) _clip_fetch_c_item(cm, (int) h, _C_ITEM_TYPE_WIDGET); if (cwid == NULL || cwid->data == NULL) goto err; return cwid->data; err: return NULL; }
CLIP_DLLEXPORT C_widget* _fetch_cw_opt(ClipMachine* cm) { C_widget* cwid; if (_clip_parinfo(cm,1)==UNDEF_t) return NULL; if (_clip_parinfo(cm,1)==NUMERIC_t) { cwid = (C_widget*)_clip_fetch_c_item(cm,_clip_parni(cm,1), _C_ITEM_TYPE_WIDGET); } else { if (_clip_parinfo(cm,1)==MAP_t) { double h; _clip_mgetn(cm, _clip_spar(cm,1), HASH_HANDLE, &h); cwid = (C_widget *) _clip_fetch_c_item(cm, (int) h, _C_ITEM_TYPE_WIDGET); } else { _clip_trap_err(cm,EG_ARG,0,0,"CLIP_GTK_SYSTEM", EG_ARG,"Bad widget descriptor"); return NULL; } } if(!cwid) { _clip_trap_err(cm,EG_ARG,0,0,"CLIP_GTK_SYSTEM", EG_ARG,"Bad widget descriptor"); return NULL; } return cwid; }
int clip_SQLFETCHED(ClipMachine * ClipMachineMemory) { int rowset_item = _clip_parni(ClipMachineMemory, 1); SQLROWSET *rowset = (SQLROWSET *) _clip_fetch_c_item(ClipMachineMemory, rowset_item, _C_ITEM_TYPE_SQL); if (!rowset) { _clip_trap_err(ClipMachineMemory, 0, 0, 0, subsys, ER_NOROWSET, er_norowset); return 1; } _clip_retni(ClipMachineMemory, rowset->loaded); return 0; }
int clip_SQLBLOBCLOSE(ClipMachine * ClipMachineMemory) { int conn_item = _clip_parni(ClipMachineMemory, 1); SQLCONN *conn = (SQLCONN *) _clip_fetch_c_item(ClipMachineMemory, conn_item, _C_ITEM_TYPE_SQL); int oid_fd = _clip_parni(ClipMachineMemory, 2); if (!conn) { _clip_trap_err(ClipMachineMemory, 0, 0, 0, subsys, ER_NOCONNECT, er_noconnect); return 1; } if (conn->vtbl->blob_close) return conn->vtbl->blob_close(ClipMachineMemory, conn, oid_fd); return 0; }
int rdd_ii_opentag(ClipMachine * ClipMachineMemory, int h, const char *tag, const char *__PROC__) { RDD_INDEX *ri = (RDD_INDEX *) _clip_fetch_c_item(ClipMachineMemory, h, _C_ITEM_TYPE_I_INDEX); RDD_ORDER *ro; int er; CHECKII(ri); if ((er = ri->vtbl->ii_opentag(ClipMachineMemory, ri, tag, &ro, __PROC__))) return er; ro->c_item = _clip_store_c_item(ClipMachineMemory, ro, _C_ITEM_TYPE_I_ORDER, destroy_rdd_i_order); _clip_retni(ClipMachineMemory, ro->c_item); return 0; }