这篇教程C++ tdsdump_log函数代码示例写得很实用,希望能帮到您。
本文整理汇总了C++中tdsdump_log函数的典型用法代码示例。如果您正苦于以下问题:C++ tdsdump_log函数的具体用法?C++ tdsdump_log怎么用?C++ tdsdump_log使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。 在下文中一共展示了tdsdump_log函数的30个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。 示例1: pool_process_members/* * pool_process_members * check the fd_set for members returning data to the client, lookup the * client holding this member and forward the results. */intpool_process_members(TDS_POOL * pool, fd_set * fds){ TDS_POOL_MEMBER *pmbr; TDS_POOL_USER *puser; TDSSOCKET *tds; int i, age, ret; int cnt = 0; time_t time_now; for (i = 0; i < pool->num_members; i++) { pmbr = &pool->members[i]; tds = pmbr->tds; if (!tds) { assert(pmbr->state == TDS_IDLE); continue; /* dead connection */ } time_now = time(NULL); if (FD_ISSET(tds_get_s(tds), fds)) { pmbr->last_used_tm = time_now; cnt++; if (pool_packet_read(tds)) continue; if (tds->in_len == 0) { fprintf(stderr, "Uh oh! member %d disconnected/n", i); /* mark as dead */ pool_free_member(pmbr); } else if (tds->in_len < 0) { fprintf(stderr, "Uh oh! member %d disconnected/n", i); perror("read"); pool_free_member(pmbr); } else { tdsdump_dump_buf(TDS_DBG_NETWORK, "Got packet from server:", tds->in_buf, tds->in_len); /* fprintf(stderr, "read %d bytes from member %d/n", tds->in_len, i); */ puser = pmbr->current_user; if (puser) { tdsdump_log(TDS_DBG_INFO1, "writing it sock %d/n", tds_get_s(puser->tds)); /* cf. net.c for better technique. */ /* FIXME handle partial write, stop read on member */ ret = pool_write_all(tds_get_s(puser->tds), tds->in_buf, tds->in_len); if (ret < 0) { /* couldn't write, ditch the user */ fprintf(stdout, "member %d received error while writing/n",i); pool_free_member(pmbr); } } } } age = time_now - pmbr->last_used_tm; if (age > pool->max_member_age && i >= pool->min_open_conn && !pmbr->current_user) { fprintf(stderr, "member %d is %d seconds old...closing/n", i, age); pool_free_member(pmbr); } } return cnt;}
开发者ID:misterion,项目名称:freetds,代码行数:63,
示例2: cs_diagCS_RETCODEcs_diag(CS_CONTEXT * ctx, CS_INT operation, CS_INT type, CS_INT idx, CS_VOID * buffer){ tdsdump_log(TDS_DBG_FUNC, "cs_diag(%p, %d, %d, %d, %p)/n", ctx, operation, type, idx, buffer); switch (operation) { case CS_INIT: if ( ctx->cs_errhandletype == _CS_ERRHAND_CB) { /* contrary to the manual page you don't seem to */ /* be able to turn on inline message handling */ /* using cs_diag, once a callback is installed! */ return CS_FAIL; } ctx->cs_errhandletype = _CS_ERRHAND_INLINE; ctx->cs_diag_msglimit = CS_NO_LIMIT; ctx->_cslibmsg_cb = (CS_CSLIBMSG_FUNC) cs_diag_storemsg; break; case CS_MSGLIMIT: if ( ctx->cs_errhandletype != _CS_ERRHAND_INLINE) { return CS_FAIL; } ctx->cs_diag_msglimit = *(CS_INT *)buffer; break; case CS_CLEAR: if ( ctx->cs_errhandletype != _CS_ERRHAND_INLINE) { return CS_FAIL; } return (cs_diag_clearmsg(ctx, type)); break; case CS_GET: if ( ctx->cs_errhandletype != _CS_ERRHAND_INLINE) { return CS_FAIL; } if (buffer == NULL) return CS_FAIL; if (idx == 0 || (ctx->cs_diag_msglimit != CS_NO_LIMIT && idx > ctx->cs_diag_msglimit) ) return CS_FAIL; return (cs_diag_getmsg(ctx, idx, (CS_CLIENTMSG *)buffer)); break; case CS_STATUS: if ( ctx->cs_errhandletype != _CS_ERRHAND_INLINE) { return CS_FAIL; } if (buffer == NULL) return CS_FAIL; return (cs_diag_countmsg(ctx, (CS_INT *)buffer)); break; } return CS_SUCCEED; }
开发者ID:Distrotech,项目名称:freetds,代码行数:57,
示例3: cs_will_convertCS_RETCODEcs_will_convert(CS_CONTEXT * ctx, CS_INT srctype, CS_INT desttype, CS_BOOL * result){ tdsdump_log(TDS_DBG_FUNC, "cs_will_convert(%p, %d, %d, %p)/n", ctx, srctype, desttype, result); *result = (tds_willconvert(srctype, desttype) ? CS_TRUE : CS_FALSE); return CS_SUCCEED;}
开发者ID:Distrotech,项目名称:freetds,代码行数:9,
示例4: pool_user_read/* * pool_user_read * checks the packet type of data coming from the client and allocates a * pool member if necessary. */static boolpool_user_read(TDS_POOL * pool, TDS_POOL_USER * puser){ TDSSOCKET *tds = puser->sock.tds; TDS_POOL_MEMBER *pmbr = NULL; for (;;) { if (pool_packet_read(tds)) break; if (tds->in_len == 0) { tdsdump_log(TDS_DBG_INFO1, "user disconnected/n"); pool_free_user(pool, puser); return false; } else { TDS_UCHAR in_flag = tds->in_buf[0]; tdsdump_dump_buf(TDS_DBG_NETWORK, "Got packet from client:", tds->in_buf, tds->in_len); switch (in_flag) { case TDS_QUERY: case TDS_NORMAL: case TDS_RPC: case TDS_BULK: case TDS_CANCEL: case TDS7_TRANS: if (!pool_write_data(&puser->sock, &puser->assigned_member->sock)) { pool_reset_member(pool, puser->assigned_member); return false; } pmbr = puser->assigned_member; break; default: tdsdump_log(TDS_DBG_ERROR, "Unrecognized packet type, closing user/n"); pool_free_user(pool, puser); return false; } } } if (pmbr && !pmbr->sock.poll_send) tds_socket_flush(tds_get_s(pmbr->sock.tds)); return true;}
开发者ID:DoubleQuantZ,项目名称:freetds,代码行数:48,
示例5: odbc_bcp_free_storagevoidodbc_bcp_free_storage(TDS_DBC *dbc){ tdsdump_log(TDS_DBG_FUNC, "_bcp_free_storage(%p)/n", dbc); assert(dbc); tds_free_bcpinfo(dbc->bcpinfo); dbc->bcpinfo = NULL; TDS_ZERO_FREE(dbc->bcphint);}
开发者ID:nextgres,项目名称:freetds,代码行数:10,
示例6: dbpivot_maxvoiddbpivot_max (struct col_t *tgt, const struct col_t *src){ assert( tgt && src); assert (src->type); tgt->type = src->type; if (col_null(src)) return; switch (src->type) { case SYBINT1: tgt->ti = tgt->ti > src->ti? tgt->ti : src->ti; break; case SYBINT2: tgt->si = tgt->si > src->si? tgt->si : src->si; break; case SYBINT4: tgt->i = tgt->i > src->i? tgt->i : src->i; break; case SYBFLT8: tgt->f = tgt->f > src->f? tgt->f : src->f; break; case SYBREAL: tgt->r = tgt->r > src->r? tgt->r : src->r; break; case SYBCHAR: case SYBVARCHAR: case SYBINTN: case SYBDATETIME: case SYBBIT: case SYBTEXT: case SYBNTEXT: case SYBIMAGE: case SYBMONEY4: case SYBMONEY: case SYBDATETIME4: case SYBBINARY: case SYBVOID: case SYBVARBINARY: case SYBBITN: case SYBNUMERIC: case SYBDECIMAL: case SYBFLTN: case SYBMONEYN: case SYBDATETIMN: default: tdsdump_log(TDS_DBG_INFO1, "dbpivot_sum(): invalid operand %d/n", src->type); tgt->type = SYBINT4; tgt->i = 0; break; }}
开发者ID:RQZeng,项目名称:freetds,代码行数:55,
示例7: tds_config_env_tdsportstatic voidtds_config_env_tdsport(TDSCONNECTINFO * connect_info){ char *s; if ((s = getenv("TDSPORT"))) { connect_info->port = atoi(s); tdsdump_log(TDS_DBG_INFO1, "%L Setting 'port' to %s from $TDSPORT./n", s); } return;}
开发者ID:BackupTheBerlios,项目名称:upwatch-svn,代码行数:11,
示例8: tds_try_conf_filestatic inttds_try_conf_file(const char *path, const char *how, const char *server, TDSCONNECTINFO * connect_info){ int found = 0; FILE *in; if ((in = fopen(path, "r")) != NULL) { tdsdump_log(TDS_DBG_INFO1, "%L Found conf file '%s' %s. Reading section '%s'./n", path, how, server); found = tds_read_conf_sections(in, server, connect_info); if (found) { tdsdump_log(TDS_DBG_INFO1, "%L ...Success./n"); } else { tdsdump_log(TDS_DBG_INFO2, "%L ...'%s' not found./n", server); } fclose(in); } return found;}
开发者ID:BackupTheBerlios,项目名称:upwatch-svn,代码行数:20,
示例9: cs_loc_dropCS_RETCODEcs_loc_drop(CS_CONTEXT * ctx, CS_LOCALE * locale){ tdsdump_log(TDS_DBG_FUNC, "cs_loc_drop(%p, %p)/n", ctx, locale); if (!locale) return CS_FAIL; _cs_locale_free(locale); return CS_SUCCEED;}
开发者ID:Distrotech,项目名称:freetds,代码行数:11,
示例10: tds_push_func_loginstatic SSL_RETtds_push_func_login(SSL_PUSH_ARGS){ TDSSOCKET *tds = (TDSSOCKET *) SSL_PTR; tdsdump_log(TDS_DBG_INFO1, "in tds_push_func_login/n"); /* initializing SSL, write crypted data inside normal TDS packets */ tds_put_n(tds, data, len); return len;}
开发者ID:hutchinson,项目名称:freetds,代码行数:11,
示例11: _cs_locale_freevoid _cs_locale_free(CS_LOCALE *locale){ tdsdump_log(TDS_DBG_FUNC, "_cs_locale_free(%p)/n", locale); /* free contents */ _cs_locale_free_contents(locale); /* free the data structure */ free(locale);}
开发者ID:Distrotech,项目名称:freetds,代码行数:11,
示例12: tds7_build_bulk_insert_stmt/** * Help to build query to be sent to server. * Append column declaration to the query. * Only for TDS 7.0+. * /tds * /param[out] clause output string * /param bcpcol column to append * /param first true if column is the first * /return TDS_SUCCESS or TDS_FAIL. */static TDSRETtds7_build_bulk_insert_stmt(TDSSOCKET * tds, TDSPBCB * clause, TDSCOLUMN * bcpcol, int first){ char column_type[40]; tdsdump_log(TDS_DBG_FUNC, "tds7_build_bulk_insert_stmt(%p, %p, %p, %d)/n", tds, clause, bcpcol, first); if (TDS_FAILED(tds_get_column_declaration(tds, bcpcol, column_type))) { tdserror(tds_get_ctx(tds), tds, TDSEBPROBADTYP, errno); tdsdump_log(TDS_DBG_FUNC, "error: cannot build bulk insert statement. unrecognized server datatype %d/n", bcpcol->on_server.column_type); return TDS_FAIL; } if (clause->cb < strlen(clause->pb) + tds_quote_id(tds, NULL, tds_dstr_cstr(&bcpcol->column_name), tds_dstr_len(&bcpcol->column_name)) + strlen(column_type) + ((first) ? 2u : 4u)) { char *temp = (char*) malloc(2 * clause->cb); if (!temp) { tdserror(tds_get_ctx(tds), tds, TDSEMEM, errno); return TDS_FAIL; } strcpy(temp, clause->pb); if (clause->from_malloc) free(clause->pb); clause->from_malloc = 1; clause->pb = temp; clause->cb *= 2; } if (!first) strcat(clause->pb, ", "); tds_quote_id(tds, strchr(clause->pb, 0), tds_dstr_cstr(&bcpcol->column_name), tds_dstr_len(&bcpcol->column_name)); strcat(clause->pb, " "); strcat(clause->pb, column_type); return TDS_SUCCESS;}
开发者ID:DmitrySigaev,项目名称:ncbi,代码行数:51,
示例13: tds_config_booleaninttds_config_boolean(const char *value){ int p; for (p = 0; p < TDS_VECTOR_SIZE(boolean_values); ++p) { if (!strcasecmp(value, boolean_values[p].value)) return boolean_values[p].to_return; } tdsdump_log(TDS_DBG_INFO1, "UNRECOGNIZED boolean value: '%s'. Treating as 'no'./n", value); return 0;}
开发者ID:msabramo,项目名称:freetds,代码行数:12,
示例14: tds_config_env_tdsverstatic voidtds_config_env_tdsver(TDSLOGIN * login){ char *tdsver; if ((tdsver = getenv("TDSVER"))) { TDS_USMALLINT *pver = tds_config_verstr(tdsver, login); tdsdump_log(TDS_DBG_INFO1, "TDS version %sset to %s from $TDSVER./n", (pver? "":"not "), tdsver); } return;}
开发者ID:ZeusbasePython,项目名称:freetds,代码行数:12,
示例15: tds_config_env_tdshost |