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

📄 otlv4.h

📁 通用的数据库访问模板类库
💻 H
📖 第 1 页 / 共 5 页
字号:
    OTL_TRACE_STREAM<<")::open(buffer_size=";           \    OTL_TRACE_STREAM<<arr_size;                         \    OTL_TRACE_STREAM<<", sqlstm=";                      \    OTL_TRACE_STREAM<<sqlstm;                           \    OTL_TRACE_STREAM<<", connect=";                     \    OTL_TRACE_STREAM<<OTL_RCAST(void*,&db);             \    if(ref_cur_placeholder){                            \      OTL_TRACE_STREAM<<", ref_cur_placeholder=";       \      OTL_TRACE_STREAM<<ref_cur_placeholder;            \    }                                                   \    if(sqlstm_label){                                   \      OTL_TRACE_STREAM<<", label=";                     \      OTL_TRACE_STREAM<<sqlstm_label;                   \    }                                                   \    OTL_TRACE_STREAM<<");";                             \    OTL_TRACE_STREAM<<OTL_TRACE_LINE_SUFFIX;            \  }#endif#if !defined(OTL_TRACE_DIRECT_EXEC)#define OTL_TRACE_DIRECT_EXEC                             \  if(OTL_TRACE_LEVEL & 0x2){                              \    OTL_TRACE_STREAM<<OTL_TRACE_LINE_PREFIX;              \    OTL_TRACE_STREAM<<"otl_cursor::direct_exec(connect="; \    OTL_TRACE_STREAM<<OTL_RCAST(void*,&connect);          \    OTL_TRACE_STREAM<<",sqlstm=\"";                       \    OTL_TRACE_STREAM<<sqlstm;                             \    OTL_TRACE_STREAM<<"\",exception_enabled=";            \    OTL_TRACE_STREAM<<exception_enabled;                  \    OTL_TRACE_STREAM<<");";                               \    OTL_TRACE_STREAM<<OTL_TRACE_LINE_SUFFIX;              \  }#endif#if !defined(OTL_TRACE_SYNTAX_CHECK)#define OTL_TRACE_SYNTAX_CHECK                             \  if(OTL_TRACE_LEVEL & 0x2){                               \    OTL_TRACE_STREAM<<OTL_TRACE_LINE_PREFIX;               \    OTL_TRACE_STREAM<<"otl_cursor::syntax_check(connect="; \    OTL_TRACE_STREAM<<OTL_RCAST(void*,&connect);           \    OTL_TRACE_STREAM<<",sqlstm=\"";                        \    OTL_TRACE_STREAM<<sqlstm;                              \    OTL_TRACE_STREAM<<"\"";                                \    OTL_TRACE_STREAM<<");";                                \    OTL_TRACE_STREAM<<OTL_TRACE_LINE_SUFFIX;               \  }#endif#if !defined(OTL_TRACE_FUNC)#define OTL_TRACE_FUNC(level,class_name,func_name,args) \  if(OTL_TRACE_LEVEL & level){                          \    OTL_TRACE_STREAM<<OTL_TRACE_LINE_PREFIX;            \    OTL_TRACE_STREAM<<class_name;                       \    OTL_TRACE_STREAM<<"(this=";                         \    OTL_TRACE_STREAM<<OTL_RCAST(void*,this);            \    OTL_TRACE_STREAM<<")::" func_name "(";              \    OTL_TRACE_STREAM<<args;                             \    OTL_TRACE_STREAM<<");";                             \    OTL_TRACE_STREAM<<OTL_TRACE_LINE_SUFFIX;            \  }#endif#if !defined(OTL_TRACE_EXCEPTION)#define OTL_TRACE_EXCEPTION(code,msg,stm_text,var_info) \  if(OTL_TRACE_LEVEL & 0x20){                           \    OTL_TRACE_STREAM<<OTL_TRACE_LINE_PREFIX;            \    OTL_TRACE_STREAM<<"otl_exception, code=";           \    OTL_TRACE_STREAM<<code;                             \    OTL_TRACE_STREAM<<", msg=";                         \    char* c=OTL_RCAST(char*,msg);                       \    while(*c && *c!='\n'){                              \      OTL_TRACE_STREAM<<*c;                             \      ++c;                                              \    }                                                   \    OTL_TRACE_STREAM<<", stm_text=";                    \    OTL_TRACE_STREAM<<stm_text;                         \    OTL_TRACE_STREAM<<", var_info=";                    \    OTL_TRACE_STREAM<<var_info;                         \    OTL_TRACE_STREAM<<OTL_TRACE_LINE_SUFFIX;            \  }#endif#if !defined(OTL_TRACE_RLOGON_ORA7) && defined(OTL_ORA7)#define OTL_TRACE_RLOGON_ORA7(level,class_name,func_name,       \                              connect_str,auto_commit)          \  if(OTL_TRACE_LEVEL & level){                                  \    char temp_connect_str[2048];                                \    const char* c1=OTL_RCAST(const char*,connect_str);          \    char* c2=temp_connect_str;                                  \    while(*c1 && *c1!='/'){                                     \      *c2=*c1;                                                  \      ++c1; ++c2;                                               \    }                                                           \    if(*c1=='/'){                                               \      *c2=*c1;                                                  \      ++c1; ++c2;                                               \      while(*c1 && *c1!='@'){                                   \        *c2='*';                                                \        ++c1; ++c2;                                             \      }                                                         \      if(*c1=='@'){                                             \        while(*c1){                                             \          *c2=*c1;                                              \          ++c1; ++c2;                                           \        }                                                       \      }                                                         \    }                                                           \    *c2=0;                                                      \    OTL_TRACE_STREAM<<OTL_TRACE_LINE_PREFIX;                    \    OTL_TRACE_STREAM<<class_name;                               \    OTL_TRACE_STREAM<<"(this=";                                 \    OTL_TRACE_STREAM<<OTL_RCAST(void*,this);                    \    OTL_TRACE_STREAM<<")::" func_name "(";                      \    OTL_TRACE_STREAM<<"connect_str=\"";                         \    OTL_TRACE_STREAM<<temp_connect_str;                         \    OTL_TRACE_STREAM<<"\", auto_commit=";                       \    OTL_TRACE_STREAM<<auto_commit;                              \    OTL_TRACE_STREAM<<");";                                     \    OTL_TRACE_STREAM<<OTL_TRACE_LINE_SUFFIX;                    \  }#endif#if !defined(OTL_TRACE_RLOGON_ORA8) && defined(OTL_ORA8)#define OTL_TRACE_RLOGON_ORA8(level,class_name,func_name,               \                              tnsname,userid,passwd,                    \                              auto_commit)                              \  if(OTL_TRACE_LEVEL & level){                                          \    char temp_connect_str[2048];                                        \    OTL_STRCPY_S(temp_connect_str,sizeof(temp_connect_str),userid);     \    OTL_STRCAT_S(temp_connect_str,sizeof(temp_connect_str),"/");        \    size_t sz=strlen(passwd);                                           \    for(size_t i=0;i<sz;++i)                                            \      OTL_STRCAT_S(temp_connect_str,sizeof(temp_connect_str),"*");      \    size_t tns_sz=strlen(tnsname);                                      \    if(tns_sz>0){                                                       \      OTL_STRCAT_S(temp_connect_str,sizeof(temp_connect_str),"@");      \      OTL_STRCAT_S(temp_connect_str,sizeof(temp_connect_str),tnsname);  \    }                                                                   \    OTL_TRACE_STREAM<<OTL_TRACE_LINE_PREFIX;                            \    OTL_TRACE_STREAM<<class_name<<"(this=";                             \    OTL_TRACE_STREAM<<OTL_RCAST(void*,this);                            \    OTL_TRACE_STREAM<<")::" func_name "(";                              \    OTL_TRACE_STREAM<<"connect_str=\"";                                 \    OTL_TRACE_STREAM<<temp_connect_str;                                 \    OTL_TRACE_STREAM<<"\", auto_commit=";                               \    OTL_TRACE_STREAM<<auto_commit <<");";                               \    OTL_TRACE_STREAM<<OTL_TRACE_LINE_SUFFIX;                            \  }#endif#if !defined(OTL_TRACE_RLOGON_ODBC)&&(defined(OTL_ODBC)||defined(OTL_DB2_CLI))#define OTL_TRACE_RLOGON_ODBC(level,class_name,func_name,                       \                              tnsname,userid,passwd,                            \                              auto_commit)                                      \  if(OTL_TRACE_LEVEL & level){                                                  \    char temp_connect_str2[2048];                                               \    OTL_STRCPY_S(temp_connect_str2,sizeof(temp_connect_str2),userid);           \    OTL_STRCAT_S(temp_connect_str2,sizeof(temp_connect_str2),"/");              \    size_t sz=strlen(passwd);                                                   \    for(size_t i=0;i<sz;++i)                                                    \      OTL_STRCAT_S(temp_connect_str2,sizeof(temp_connect_str2),"*");            \    size_t tns_sz=strlen(tnsname);                                              \    if(tns_sz>0){                                                               \      OTL_STRCAT_S(temp_connect_str2,sizeof(temp_connect_str2),"@");            \      OTL_STRCAT_S(temp_connect_str2,sizeof(temp_connect_str2),tnsname);        \    }                                                                           \    OTL_TRACE_STREAM<<OTL_TRACE_LINE_PREFIX;                                    \    OTL_TRACE_STREAM<<class_name;                                               \    OTL_TRACE_STREAM<<"(this=";                                                 \    OTL_TRACE_STREAM<<OTL_RCAST(void*,this);                                    \    OTL_TRACE_STREAM<<")::" func_name "(";                                      \    OTL_TRACE_STREAM<<"connect_str=\"";                                         \    OTL_TRACE_STREAM<<temp_connect_str2;                                        \    OTL_TRACE_STREAM<<"\", auto_commit=";                                       \    OTL_TRACE_STREAM<<auto_commit;                                              \    OTL_TRACE_STREAM<<");";                                                     \    OTL_TRACE_STREAM<<OTL_TRACE_LINE_SUFFIX;                                    \  }#endif#if !defined(OTL_TRACE_RLOGON_ODBC_W)&& \    (defined(OTL_ODBC)||defined(OTL_DB2_CLI))#define OTL_TRACE_RLOGON_ODBC_W(level,class_name,func_name,     \                              tnsname,userid,passwd,            \                              auto_commit)                      \  if(OTL_TRACE_LEVEL & level){                                  \    OTL_TRACE_STREAM<<OTL_TRACE_LINE_PREFIX;                    \    OTL_TRACE_STREAM<<class_name;                               \    OTL_TRACE_STREAM<<L"(this=";                                \    OTL_TRACE_STREAM<<OTL_RCAST(void*,this);                    \    OTL_TRACE_STREAM<<L")::" func_name L"(";                    \    OTL_TRACE_STREAM<<L"connect_str=\"";                        \    OTL_TRACE_STREAM<<userid<<L"/***@"<<tnsname;                \    OTL_TRACE_STREAM<<L"\", auto_commit=";                      \    OTL_TRACE_STREAM<<auto_commit;                              \    OTL_TRACE_STREAM<<L");";                                    \    OTL_TRACE_STREAM<<OTL_TRACE_LINE_SUFFIX;                    \  }#endif#if !defined(OTL_TRACE_FIRST_FETCH)#if defined(OTL_TRACE_ENABLE_STREAM_LABELS)#define OTL_TRACE_FIRST_FETCH                                                   \  if(OTL_TRACE_LEVEL & 0x8){                                                    \    OTL_TRACE_STREAM<<OTL_TRACE_LINE_PREFIX;                                    \    OTL_TRACE_STREAM<<"otl_stream, fetched the first batch of rows, SQL Stm=";  \     if(this->stm_label)                                                        \       OTL_TRACE_STREAM<<this->stm_label;                                       \     else                                                                       \       OTL_TRACE_STREAM<<this->stm_text;                                        \    OTL_TRACE_STREAM<<", RPC=";                                                 \    OTL_TRACE_STREAM<<row_count;                                                \    OTL_TRACE_STREAM<<OTL_TRACE_LINE_SUFFIX;                                    \  }#else#define OTL_TRACE_FIRST_FETCH                                                   \  if(OTL_TRACE_LEVEL & 0x8){                                                    \    OTL_TRACE_STREAM<<OTL_TRACE_LINE_PREFIX;                                    \    OTL_TRACE_STREAM<<"otl_stream, fetched the first batch of rows, SQL Stm=";  \    OTL_TRACE_STREAM<<this->stm_text;                                           \    OTL_TRACE_STREAM<<", RPC=";                                                 \    OTL_TRACE_STREAM<<row_count;                                                \    OTL_TRACE_STREAM<<OTL_TRACE_LINE_SUFFIX;                                    \  }#endif#endif#if !defined(OTL_TRACE_NEXT_FETCH)#if defined(OTL_TRACE_ENABLE_STREAM_LABELS)#define OTL_TRACE_NEXT_FETCH                                                    \   if(OTL_TRACE_LEVEL & 0x8 && cur_row==0){                                     \     OTL_TRACE_STREAM<<OTL_TRACE_LINE_PREFIX;                                   \     OTL_TRACE_STREAM<<"otl_stream, fetched the next batch of rows, SQL Stm=" ; \     if(this->stm_label)                                                        \       OTL_TRACE_STREAM<<this->stm_label;                                       \     else                                                                       \       OTL_TRACE_STREAM<<this->stm_text;                                        \     OTL_TRACE_STREAM<<", RPC=";                                                \     OTL_TRACE_STREAM<<row_count;                                               \     OTL_TRACE_STREAM<<OTL_TRACE_LINE_SUFFIX;                                   \   }#else#define OTL_TRACE_NEXT_FETCH                                                    \   if(OTL_TRACE_LEVEL & 0x8 && cur_row==0){                                     \     OTL_TRACE_STREAM<<OTL_TRACE_LINE_PREFIX;                                   \     OTL_TRACE_STREAM<<"otl_stream, fetched the next batch of rows, SQL Stm=" ; \     OTL_TRACE_STREAM<<this->stm_text;                                          \     OTL_TRACE_STREAM<<", RPC=";                                                \     OTL_TRACE_STREAM<<row_count;                                               \     OTL_TRACE_STREAM<<OTL_TRACE_LINE_SUFFIX;                                   \   }#endif#endif#if !defined(OTL_TRACE_STREAM_EXECUTION)#if defined(OTL_TRACE_ENABLE_STREAM_LABELS)#define OTL_TRACE_STREAM_EXECUTION                              \   if(OTL_TRACE_LEVEL & 0x8){                                   \     OTL_TRACE_STREAM<<OTL_TRACE_LINE_PREFIX;                   \     OTL_TRACE_STREAM<<"otl_stream, executing SQL Stm=";        \     if(this->stm_label)                                        \       OTL_TRACE_STREAM<<this->stm_label;                       \     else                                                       \       OTL_TRACE_STREAM<<this->stm_text;                        \     OTL_TRACE_STREAM<<", buffer size=";                        \     OTL_TRACE_STREAM<<this->array_size;                        \     OTL_TRACE_STREAM<<OTL_TRACE_LINE_SUFFIX;                   \   }#else#define OTL_TRACE_STREAM_EXECUTION                              \   if(OTL_TRACE_LEVEL & 0x8){                                   \     OTL_TRACE_STREAM<<OTL_TRACE_LINE_PREFIX;                   \     OTL_TRACE_STREAM<<"otl_stream, executing SQL Stm=";        \     OTL_TRACE_STREAM<<this->stm_text;                          \     OTL_TRACE_STREAM<<", buffer size=";                        \     OTL_TRACE_STREAM<<this->array_size;                        \     OTL_TRACE_STREAM<<OTL_TRACE_LINE_SUFFIX;                   \   }#endif#endif#if !defined(OTL_TRACE_STREAM_EXECUTION2)#if defined(OTL_TRACE_ENABLE_STREAM_LABELS)#define OTL_TRACE_STREAM_EXECUTION2                             \    if(OTL_TRACE_LEVEL & 0x8){                                  \      OTL_TRACE_STREAM<<OTL_TRACE_LINE_PREFIX;                  \      OTL_TRACE_STREAM<<"otl_stream, executing SQL Stm=";       \     if(this->stm_label)                                        \       OTL_TRACE_STREAM<<this->stm_label;                       \     else                                                       \       OTL_TRACE_STREAM<<this->stm_text;                        \      OTL_TRACE_STREAM<<", current batch size=";                \      OTL_TRACE_STREAM<<(cur_y+1);                              \      OTL_TRACE_STREAM<<", row offset=";                        \      OTL_TRACE_STREAM<<rowoff;                                 \      OTL_TRACE_STREAM<<OTL_TRACE_LINE_SUFFIX;                  \    }#else#define OTL_TRACE_STREAM_EXECUTION2                             \    if(OTL_TRACE_LEVEL & 0x8){                                  \      OTL_TRACE_STREAM<<OTL_TRACE_LINE_PREFIX;                  \      OTL_TRACE_STREAM<<"otl_stream, executing SQL Stm=";       \      OTL_TRACE_STREAM<<this->stm_text;                         \      OTL_TRACE_STREAM<<", current batch size=";                \      OTL_TRACE_STREAM<<(cur_y+1);                              \      OTL_TRACE_STREAM<<", row offset=";                        \      OTL_TRACE_STREAM<<rowoff;                                 \      OTL_TRACE_STREAM<<OTL_TRACE_LINE_SUFFIX;                  \    }#endif#endif#if !defined(OTL_TRACE_READ)#define OTL_TRACE_READ(val,function,type)               \  if(OTL_TRACE_LEVEL & 0x10){                           \    otl_var_desc* temp_vdesc=describe_next_in_var();    \    OTL_TRACE_STREAM<<OTL_TRACE_LINE_PREFIX;            \    OTL_TRACE_STREAM<<"otl_stream(this=";               \    OTL_TRACE_STREAM<<OTL_RCAST(void*,this);            \    OTL_TRACE_STREAM<<")::" function "(" type ": ";     \    OTL_TRACE_STREAM<<"ftype=";                         \    OTL_TRACE_STREAM<<temp_vdesc->ftype;                \    OTL_TRACE_STREAM<<", placeholder=";                 \    OTL_TRACE_STREAM<<temp_vdesc->name;                 \    OTL_TRACE_STREAM<<", value=";                       \    OTL_TRACE_STREAM<<val;                              \    OTL_TRACE_STREAM <<");";                            \    OTL_TRACE_STREAM<<OTL_TRACE_LINE_SUFFIX;            \  }#endif#if !defined(OTL_TRACE_WRITE)#define OTL_TRACE_WRITE(val,function,type)              \   if(OTL_TRACE_LEVEL & 0x10){                          \     otl_var_desc* temp_vdesc=describe_next_out_var();  \     OTL_TRACE_STREAM<<OTL_TRACE_LINE_PREFIX;           \     OTL_TRACE_STREAM<<"otl_stream(this=";              \     OTL_TRACE_STREAM<<OTL_RCAST(void*,this);           \     OTL_TRACE_STREAM<<")::" function "(" type " : ";   \     OTL_TRACE_STREAM<<"ftype=";                        \     OTL_TRACE_STREAM<<temp_vdesc->ftype;               \     OTL_TRACE_STREAM<<", placeholder=";                \     OTL_TRACE_STREAM<<temp_vdesc->name;                \     OTL_TRACE_STREAM<<", value=";                      \     if(this->is_null())                                \       OTL_TRACE_STREAM<<"NULL";                        \     else                                               \       OTL_TRACE_STREAM<<val;                           \     OTL_TRACE_STREAM<<");";                            \     OTL_TRACE_STREAM<<OTL_TRACE_LINE_SUFFIX;           \   }#endif#else#define OTL_TRACE_LINE_PREFIX#define OTL_TRACE_LINE_SUFFIX#define OTL_TRACE_DIRECT_EXEC#define OTL_TRACE_SYNTAX_CHECK#define OTL_TRACE_FUNC(level,class_name,func_name,args)#define OTL_TRACE_EXCEPTION(code,msg,stm_text,var_info)#define OTL_TRACE_RLOGON_ORA7(level,class_name,func_name, \                              connect_str,auto_commit)#define OTL_TRACE_RLOGON_ORA8(level,class_name,func_name,       \                              tnsname,userid,passwd,            \                              auto_commit)#define OTL_TRACE_RLOGON_ODBC(level,class_name,func_name,       \                              tnsname,userid,passwd,            \                              auto_commit)#define OTL_TRACE_STREAM_OPEN#define OTL_TRACE_STREAM_OPEN2#define OTL_TRACE_FIRST_FETCH#define OTL_TRACE_NEXT_FETCH#define OTL_TRACE_STREAM_EXECUTION#define OTL_TRACE_STREAM_EXECUTION2#define OTL_TRACE_WRITE(val,function,type)#define OTL_TRACE_READ(val,function,type)#define OTL_TRACE_RLOGON_ODBC_W(level,class_name,func_name, \                              tnsname,userid,passwd,        \                              auto_commit)#endif#if defined(OTL_DB2_CLI)#define OTL_ODBC#endif#if defined(OTL_UNICODE)#if !defined(OTL_UNICODE_CHAR_TYPE)#define OTL_UNICODE_CHAR_TYPE wchar_t#endif#if !defined(OTL_UNICODE_CHAR_TYPE_TRACE_NAME)#define OTL_UNICODE_CHAR_TYPE_TRACE_NAME "wchar_t"#endif#endif#if defined(OTL_UNICODE)&& \    (defined(OTL_ORA8I)|| \     defined(OTL_ORA9I)|| \     defined(OTL_ORA10G)||defined(OTL_ORA10G_R2))#define OTL_ORA_UNICODE#endif#if defined(OTL_UNICODE)#if (defined(OTL_ORA8I)||defined(OTL_ORA9I)||defined(OTL_ORA10G)||defined(OTL_ORA10G_R2)) && defined(OTL_ODBC)#error OTL_UNICODE is not supported when both OTL_ORAxx and OTL_ODBC/OTL_DB2_CLI are defined#endif#if defined(OTL_ORA8I)||defined(OTL_ORA9I)||defined(OTL_ORA10G)||defined(OTL_ORA10G_R2)#define OTL_CHAR unsigned short#define OTL_UNICODE_CHAR OTL_CHAR#define OTL_WCHAR unsigned long#if defined(OTL_ORA8I)#define OTL_UNICODE_ID OCI_UCS2ID#endif#if defined(OTL_ORA9I)#define OTL_UNICODE_ID OCI_UTF16ID#endif#elif defined(OTL_ODBC)#define OTL_CHAR unsigned short#define OTL_UNICODE_CHAR OTL_CHAR#define OTL_WCHAR OTL_CHAR#endif#else#define OTL_CHAR unsigned char#endif#if defined(OTL_ORA7) || defined(OTL_ORA8)

⌨️ 快捷键说明

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