⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dblib.c

📁 ncbi源码
💻 C
📖 第 1 页 / 共 5 页
字号:
BYTE *dbretdata(DBPROCESS *dbproc, int retnum){	tdsdump_log (TDS_DBG_FUNC, "%L UNIMPLEMENTED dbretdata()\n");	return NULL;}int dbretlen(DBPROCESS *dbproc, int retnum){	tdsdump_log (TDS_DBG_FUNC, "%L UNIMPLEMENTED dbretlen()\n");	return -1;}RETCODE dbsqlok(DBPROCESS *dbproc){unsigned char   marker;RETCODE rc = SUCCEED;TDSSOCKET *tds;	tds = (TDSSOCKET *) dbproc->tds_socket;	if (dbproc->text_sent) {		tds_flush_packet(tds);		dbproc->text_sent = 0;		do {			marker = tds_get_byte(tds);			if(tds->s == 0) return FAIL;			tds_process_default_tokens(tds, marker);		} while (marker!=TDS_DONE_TOKEN);		return SUCCEED;	}   /*    * See what the next packet from the server is.  If it is an error    * then we should return FAIL    *//* Calling dbsqlexec on an update only stored proc should read all tokens	while (is_msg_token(tds_peek(tds))) {		marker = tds_get_byte(tds);		if (tds_process_default_tokens(tds, marker)!=TDS_SUCCEED) {			rc=FAIL;		}	} */	do {		marker = tds_peek(tds);		if (!is_result_token(marker)) {			marker = tds_get_byte(tds);			/* tds_process_default_tokens can return TDS_ERROR in which case			** we still want to read til end, but TDS_FAIL is an unrecoverable			** error */			if (tds_process_default_tokens(tds, marker)!=TDS_SUCCEED) {				rc=FAIL;			}		}#ifdef NCBI_FTDS		if(tds->s == 0) return FAIL;#endif	} while (!is_hard_end_token(marker) && !is_result_token(marker));	/* clean up */	if (rc==FAIL && !is_end_token(marker)) {		do {			marker = tds_get_byte(tds);			if (tds_process_default_tokens(tds, marker)!=TDS_SUCCEED) {				return FAIL;			}#ifdef NCBI_FTDS			if(tds->s == 0) return FAIL;#endif		} while (marker!=TDS_DONE_TOKEN);	}	return rc;}int dbnumalts(DBPROCESS *dbproc,int computeid){	tdsdump_log (TDS_DBG_FUNC, "%L UNIMPLEMENTED dbnumalts()\n");	return 0;}BYTE *dbbylist(DBPROCESS *dbproc, int computeid, int *size){	tdsdump_log (TDS_DBG_FUNC, "%L UNIMPLEMENTED dbbylist()\n");	if (size) *size = 0;	return NULL;}DBBOOL dbdead(DBPROCESS *dbproc){	if(dbproc &&	dbproc->tds_socket &&	dbproc->tds_socket->s)		return FALSE;	else		return TRUE;}EHANDLEFUNCdberrhandle(EHANDLEFUNC handler){   EHANDLEFUNC retFun = g_dblib_err_handler;   g_dblib_err_handler = handler;   return retFun;}MHANDLEFUNCdbmsghandle(MHANDLEFUNC handler){   MHANDLEFUNC retFun = g_dblib_msg_handler;   g_dblib_msg_handler = handler;   return retFun;}RETCODE dbmnyadd(DBPROCESS *dbproc, DBMONEY *m1, DBMONEY *m2, DBMONEY *sum){        tdsdump_log (TDS_DBG_FUNC, "%L UNIMPLEMENTED dbmnyadd()\n");	return SUCCEED;}RETCODE dbmnysub(DBPROCESS *dbproc, DBMONEY *m1, DBMONEY *m2, DBMONEY *diff){        tdsdump_log (TDS_DBG_FUNC, "%L UNIMPLEMENTED dbmnysyb()\n");	return SUCCEED;}RETCODE dbmnymul(DBPROCESS *dbproc, DBMONEY *m1, DBMONEY *m2, DBMONEY *prod){        tdsdump_log (TDS_DBG_FUNC, "%L UNIMPLEMENTED dbmnymul()\n");	return SUCCEED;}RETCODE dbmnydivide(DBPROCESS *dbproc, DBMONEY *m1, DBMONEY *m2, DBMONEY *quotient){        tdsdump_log (TDS_DBG_FUNC, "%L UNIMPLEMENTED dbmnydivide()\n");	return SUCCEED;}RETCODE dbmnycmp(DBPROCESS *dbproc, DBMONEY *m1, DBMONEY *m2){        tdsdump_log (TDS_DBG_FUNC, "%L UNIMPLEMENTED dbmnycmp()\n");	return SUCCEED;}RETCODE dbmnyscale(DBPROCESS *dbproc, DBMONEY *dest, int multiplier, int addend){        tdsdump_log (TDS_DBG_FUNC, "%L UNIMPLEMENTED dbmnyscale()\n");	return SUCCEED;}RETCODE dbmnyzero(DBPROCESS *dbproc, DBMONEY *dest){        tdsdump_log (TDS_DBG_FUNC, "%L UNIMPLEMENTED dbmnyzero()\n");	return SUCCEED;}RETCODE dbmnymaxpos(DBPROCESS *dbproc, DBMONEY *dest){        tdsdump_log (TDS_DBG_FUNC, "%L UNIMPLEMENTED dbmnymaxpos()\n");	return SUCCEED;}RETCODE dbmnymaxneg(DBPROCESS *dbproc, DBMONEY *dest){        tdsdump_log (TDS_DBG_FUNC, "%L UNIMPLEMENTED dbmnymaxneg()\n");	return SUCCEED;}RETCODE dbmnyndigit(DBPROCESS *dbproc, DBMONEY *mnyptr,DBCHAR *value, DBBOOL *zero){        tdsdump_log (TDS_DBG_FUNC, "%L UNIMPLEMENTED dbmnyndigit()\n");	return SUCCEED;}RETCODE dbmnyinit(DBPROCESS *dbproc,DBMONEY *mnyptr, int trim, DBBOOL *negative){        tdsdump_log (TDS_DBG_FUNC, "%L UNIMPLEMENTED dbmnyinit()\n");	return SUCCEED;}RETCODE dbmnydown(DBPROCESS *dbproc,DBMONEY *mnyptr, int divisor, int *remainder){        tdsdump_log (TDS_DBG_FUNC, "%L UNIMPLEMENTED dbmnydown()\n");	return SUCCEED;}RETCODE dbmnyinc(DBPROCESS *dbproc,DBMONEY *mnyptr){        tdsdump_log (TDS_DBG_FUNC, "%L UNIMPLEMENTED dbmnyinc()\n");	return SUCCEED;}RETCODE dbmnydec(DBPROCESS *dbproc,DBMONEY *mnyptr){        tdsdump_log (TDS_DBG_FUNC, "%L UNIMPLEMENTED dbmnydec()\n");	return SUCCEED;}RETCODE dbmnyminus(DBPROCESS *dbproc,DBMONEY *src, DBMONEY *dest){        tdsdump_log (TDS_DBG_FUNC, "%L UNIMPLEMENTED dbmnyminus()\n");	return SUCCEED;}RETCODE dbmny4minus(DBPROCESS *dbproc, DBMONEY4 *src, DBMONEY4 *dest){        tdsdump_log (TDS_DBG_FUNC, "%L UNIMPLEMENTED dbmny4minus()\n");	return SUCCEED;}RETCODE dbmny4zero(DBPROCESS *dbproc, DBMONEY4 *dest){        tdsdump_log (TDS_DBG_FUNC, "%L UNIMPLEMENTED dbmny4zero()\n");	return SUCCEED;}RETCODE dbmny4add(DBPROCESS *dbproc, DBMONEY4 *m1, DBMONEY4 *m2, DBMONEY4 *sum){        tdsdump_log (TDS_DBG_FUNC, "%L UNIMPLEMENTED dbmny4add()\n");	return SUCCEED;}RETCODE dbmny4sub(DBPROCESS *dbproc, DBMONEY4 *m1, DBMONEY4 *m2, DBMONEY4 *diff){        tdsdump_log (TDS_DBG_FUNC, "%L UNIMPLEMENTED dbmny4sub()\n");	return SUCCEED;}RETCODE dbmny4mul(DBPROCESS *dbproc, DBMONEY4 *m1, DBMONEY4 *m2, DBMONEY4 *prod){        tdsdump_log (TDS_DBG_FUNC, "%L UNIMPLEMENTED dbmny4mul()\n");	return SUCCEED;}RETCODE dbmny4divide(DBPROCESS *dbproc, DBMONEY4 *m1, DBMONEY4 *m2, DBMONEY4 *quotient){        tdsdump_log (TDS_DBG_FUNC, "%L UNIMPLEMENTED dbmny4divide()\n");	return SUCCEED;}RETCODE dbmny4cmp(DBPROCESS *dbproc, DBMONEY4 *m1, DBMONEY4 *m2){        tdsdump_log (TDS_DBG_FUNC, "%L UNIMPLEMENTED dbmny4cmp()\n");	return SUCCEED;}RETCODE dbdatecmp(DBPROCESS *dbproc, DBDATETIME *d1, DBDATETIME *d2){	if (d1->dtdays == d2->dtdays ) {		if ( d1->dttime == d2->dttime )			return 0;		else			return d1->dttime > d2->dttime ? 1 : -1 ;	}	/* date 1 is before 1900 */	if (d1->dtdays > 2958463) {		if (d2->dtdays > 2958463) /* date 2 is before 1900 */			return d1->dtdays > d2->dtdays ? 1 : -1 ;		else			return -1;	} else {		/* date 1 is after 1900 */		if (d2->dtdays < 2958463) /* date 2 is after 1900 */			return d1->dtdays > d2->dtdays ? 1 : -1 ;		else			return 1;	}	return SUCCEED;}RETCODE dbdatecrack(DBPROCESS *dbproc, DBDATEREC *di, DBDATETIME *dt){TDSDATEREC dr;	tds_datecrack(SYBDATETIME, dt, &dr);#ifndef MSDBLIB	di->dateyear    = dr.year;	di->datemonth   = dr.month;	di->datedmonth  = dr.day;	di->datedyear   = dr.dayofyear;	di->datedweek   = dr.weekday;	di->datehour    = dr.hour;	di->dateminute  = dr.minute;	di->datesecond  = dr.second;	di->datemsecond = dr.millisecond;#else	di->year        = dr.year;	di->month       = dr.month + 1;	di->day         = dr.day;	di->dayofyear   = dr.dayofyear;	di->weekday     = dr.weekday + 1;	di->hour        = dr.hour;	di->minute      = dr.minute;	di->second      = dr.second;	di->millisecond = dr.millisecond;#endif	return SUCCEED;}void dbrpwclr(LOGINREC *login){        tdsdump_log (TDS_DBG_FUNC, "%L UNIMPLEMENTED dbrpwclr()\n");}RETCODE dbrpwset(LOGINREC *login, char *srvname, char *password, int pwlen){        tdsdump_log (TDS_DBG_FUNC, "%L UNIMPLEMENTED dbrpwset()\n");	return SUCCEED;}int dbspid(DBPROCESS *dbproc){        tdsdump_log (TDS_DBG_FUNC, "%L UNIMPLEMENTED dbspid()\n");	return 0;}voiddbsetuserdata(DBPROCESS *dbproc, BYTE *ptr){	dbproc->user_data = ptr;	return;}BYTE *dbgetuserdata(DBPROCESS *dbproc){	return dbproc->user_data;}RETCODE dbsetversion(DBINT version){	g_dblib_version  = version;	return SUCCEED;}RETCODE dbmnycopy(DBPROCESS *dbproc, DBMONEY *src, DBMONEY *dest){	tdsdump_log (TDS_DBG_FUNC, "%L UNIMPLEMENTED dbmnycopy()\n");	return SUCCEED;}RETCODE dbcanquery(DBPROCESS *dbproc){	TDSSOCKET *tds;	int rc;	if (dbproc == NULL)		return FAIL;	tds = (TDSSOCKET *) dbproc->tds_socket;	if (!tds || !tds->s) 		return FAIL;	/*	 *  Just throw away all pending rows from the last query	 */	do {		rc = tds_process_row_tokens(dbproc->tds_socket);	} while (rc == TDS_SUCCEED);	if (rc == TDS_FAIL)		return FAIL;	return SUCCEED;}void dbfreebuf(DBPROCESS *dbproc){	if(dbproc->dbbuf) {		free(dbproc->dbbuf);		dbproc->dbbuf = NULL;		}		dbproc->dbbufsz = 0;} /* dbfreebuf()  */RETCODE dbclropt(DBPROCESS *dbproc,int option, char *param){        tdsdump_log (TDS_DBG_FUNC, "%L UNIMPLEMENTED dbcltopt()\n");	return SUCCEED;}DBBOOL dbisopt(DBPROCESS *dbproc,int option, char *param){        tdsdump_log (TDS_DBG_FUNC, "%L UNIMPLEMENTED dbisopt()\n");	return TRUE;}DBINT dbcurrow(DBPROCESS *dbproc){        tdsdump_log (TDS_DBG_FUNC, "%L UNIMPLEMENTED dbcurrow()\n");	return 0;}STATUS dbrowtype(DBPROCESS *dbproc){	tdsdump_log (TDS_DBG_FUNC, "%L UNIMPLEMENTED dbrowtype()\n");	return NO_MORE_ROWS;}int dbcurcmd(DBPROCESS *dbproc){        tdsdump_log (TDS_DBG_FUNC, "%L UNIMPLEMENTED dbcurcmd()\n");	return 0;}RETCODE dbmorecmds(DBPROCESS *dbproc){        tdsdump_log (TDS_DBG_FUNC, "%L UNIMPLEMENTED dbmorecmds()\n");	return SUCCEED;}int dbrettype(DBPROCESS *dbproc,int retnum){        tdsdump_log (TDS_DBG_FUNC, "%L UNIMPLEMENTED dbrettype()\n");	return 0;}int dbstrlen(DBPROCESS *dbproc){	return dbproc->dbbufsz;}char *dbgetchar(DBPROCESS *dbproc, int pos){     if (dbproc->dbbufsz > 0) {       if (pos >= 0 && pos < dbproc->dbbufsz )            return (char*)&dbproc->dbbuf[pos];       else          return (char *)NULL;     }    else        return (char *)NULL;}RETCODE dbstrcpy(DBPROCESS *dbproc, int start, int numbytes, char *dest){	dest[0] = 0; /* start with empty string being returned */	if (dbproc->dbbufsz>0) {		strncpy(dest, (char*)&dbproc->dbbuf[start], numbytes);	}	return SUCCEED;}RETCODE dbsafestr(DBPROCESS *dbproc,char *src, DBINT srclen, char *dest, DBINT destlen, int quotetype){int i, j = 0;int squote = FALSE, dquote = FALSE;		/* check parameters */	if (srclen<-1 || destlen<-1)		return FAIL;	if (srclen==-1) 		srclen = strlen(src);	if (quotetype == DBSINGLE || quotetype == DBBOTH)		squote = TRUE;	if (quotetype == DBDOUBLE || quotetype == DBBOTH)		dquote = TRUE;	/* return FAIL if invalid quotetype */	if (!dquote && !squote)		return FAIL;	for (i=0;i<srclen;i++) {		/* dbsafestr returns fail if the deststr is not big enough */		/* need one char + one for terminator */		if (destlen >= 0 && j>=destlen)			return FAIL;		if (squote && src[i]=='\'')			dest[j++] = '\'';		else if (dquote && src[i]=='\"')			dest[j++] = '\"';		if (destlen >= 0 && j>=destlen)			return FAIL;		dest[j++] = src[i];	}	if (destlen >= 0 && j>=destlen)		return FAIL;	dest[j]='\0';	return SUCCEED;}char *dbprtype(int token){   char  *result = NULL;	/* 	 * I added several types, but came up with my own result names	 * since I don't have an MS platform to compare to.	--jkl	 */   switch (token)   {      case SYBAOPAVG:       result = "avg";             	break;      case SYBAOPCNT:       result = "count";           	break;      case SYBAOPMAX:       result = "max";             	break;      case SYBAOPMIN:       result = "min";             	break;      case SYBAOPSUM:       result = "sum";             	break;	       case SYBBINARY:       result = "binary";          	break;      case SYBBIT:          result = "bit";             	break;      case SYBBITN:         result = "bit-null";        	break;      case SYBCHAR:         result = "char";            	break;      case SYBDATETIME4:    result = "smalldatetime";   	break;      case SYBDATETIME:     result = "datetime";        	break;      case SYBDATETIMN:     result = "datetime-null";   	break;      case SYBDECIMAL:      result = "decimal";         	break;      case SYBFLT8:         result = "float";           	break;      case SYBFLTN:         result = "float-null";      	break;      case SYBIMAGE:        result = "image";           	break;      case SYBINT1:         result = "tinyint";         	break;      case SYBINT2:         result = "smallint";        	break;      case SYBINT4:         result = "int";             	break;      case SYBINT8:         result = "long long";       	break;      case SYBINTN:         result = "integer-null";    	break;      case SYBMONEY4:       result = "smallmoney";      	break;      case SYBMONEY:        result = "money";           	break;      case SYBMONEYN:       result = "money-null";      	break;      case SYBNTEXT:  	   result = "UCS-2 text";      	break;      case SYBNVARCHAR:     result = "UCS-2 varchar";	 	break;      case SYBNUMERIC:      result = "numeric";         	break;      case SYBREAL:         result = "real";            	break;      case SYBTEXT:         result = "text";            	break;      case SYBUNIQUE:       result = "uniqueidentifier";	break;      case SYBVARBINARY:    result = "varbinary";       	break;      case SYBVARCHAR:      result = "varchar";         	break;      case SYBVARIANT  :    result = "variant ";	    		break;      case SYBVOID	   :    result = "void";	   		   	break;      case XSYBBINARY  :    result = "xbinary";	    		break;      case XSYBCHAR    :    result = "xchar";	    		break;      case XSYBNCHAR   :    result = "x UCS-2 char";		break;      case XSYBNVARCHAR:    result = "x UCS-2 varchar";	break;      case XSYBVARBINARY:   result = "xvarbinary";	    	break;      case XSYBVARCHAR :    result = "xvarchar ";	    		break;      default:              result = "";

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -