本文主要是介绍OTL翻译(5) -- otl_stream类(接上),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
33 | otl_stream & operator>>(otl_long_unicode_string & s) | 在定义了OTL_UNICODE或OTL_UNICODE_CHAR_TYPE宏情况下,返回UNICODE的LOB类型 | |||||||||||||||||||||||||||||||||
34 | otl_stream & operator>>(OTL_UNICODE_CHAR_TYPE&c) | 在定义了OTL_UNICODE或OTL_UNICODE_CHAR_TYPE宏情况下,返回UNICODE的字符类型 | |||||||||||||||||||||||||||||||||
35 | otl_stream operator>>(OTL_UNICODE_CHAR_TYPE * s) | 在定义了OTL_UNICODE或OTL_UNICODE_CHAR_TYPE宏情况下,返回UNICODE的字符串 | |||||||||||||||||||||||||||||||||
36 | otl_stream & operator>>(OTL_UNICODE_STRING_TYPE & s) | 在定义了OTL_UNICODE或OTL_UNICODE_CHAR_TYPE/OTL_UNICODE_STRING_TYPE宏情况下,返回UNICODE的string类型,能够很好的读取大数据字段类型,如TEXT类型等。 | |||||||||||||||||||||||||||||||||
37 | otl_stream & operator>>(char & c) | 返回单字节的字符 | |||||||||||||||||||||||||||||||||
38 | otl_stream & operator>>(undigned char & c) | 返回单字节的无符号字符 | |||||||||||||||||||||||||||||||||
39 | otl_stream & operator>>(char * s) | 返回单字节的字符串类型 | |||||||||||||||||||||||||||||||||
40 | otl_stream& operator>>(unsigned char* s); | 返回无符号的单字节字符串类型 | |||||||||||||||||||||||||||||||||
41 | otl_stream& operator>>(otl_long_string& s); | 返回LOB类型 | |||||||||||||||||||||||||||||||||
42 | otl_stream& operator>>(std::string& s); | 必须定义OTL_STL宏。 读取流中的string类型 | |||||||||||||||||||||||||||||||||
43 | otl_stream& operator>>(ACE_TString& s); | 必须定义OTL_ACE。 读取流中的ACE_TString类型。 | |||||||||||||||||||||||||||||||||
44 | otl_stream& operator>>(USER_DEFINED_STRING_CLASS & s); | 必须定义USER_DEFINE_STRING_CLASS和OTL_USER_DEFINED_CLASS_ON宏。 读取用户自定义的与string类型兼容的类型。 | |||||||||||||||||||||||||||||||||
45 | otl_stream& operator>>(int& n); | 读取32位有符号整型 | |||||||||||||||||||||||||||||||||
46 | otl_stream& operator>>(unsigned& u); | 读取32位无符号整武师 | |||||||||||||||||||||||||||||||||
47 | otl_stream& operator>>(short& sh); | 读取16位短整型 | |||||||||||||||||||||||||||||||||
48 | otl_stream& operator>>(long int& l); | 读取长整型(具体长度由编译器决定) | |||||||||||||||||||||||||||||||||
49 | otl_stream& operator>>(float& f); | 读取4字节长度的浮点型 | |||||||||||||||||||||||||||||||||
50 | otl_stream& operator>>(double& d); | 读取8字节长度的浮点型 | |||||||||||||||||||||||||||||||||
51 | otl_stream& operator>>(OTL_BIGINT& d); | 在定义了OTL_BIGINT的情况下。对于不支持bigint的ODBC来说,该操作能将一个数字串转换为64位的有符号整型。 必须定义OTL_STRING_TO_BIGINT/OTL_BIGINT_TO_STRING。 | |||||||||||||||||||||||||||||||||
52 | otl_stream& operator>>(otl_datetime& dt); | 读取流中的时间信息 | |||||||||||||||||||||||||||||||||
53 | otl_stream& operator>>(otl_XXX_tab<…>& tab); | 通过OCI来读取SQL语句中的表信息 | |||||||||||||||||||||||||||||||||
54 | otl_stream& operator>>(otl_lob_stream& lob); | 把CLOB/BLOB/TEXT/IMAGE类型读取到otl_lob_stream类型里面 | |||||||||||||||||||||||||||||||||
55 | otl_stream& operator>>(otl_refcur_stream& refcur); | 把游标的信息读取到otl_refcur_stream类型里面。 | |||||||||||||||||||||||||||||||||
56 | otl_stream& operator<<(const unsigned char* s); | 往流中写入信息。 往流中写入一个以NULL结尾的字符串。如果定义了OTL_UNICODE,则是双字节字符串。 | |||||||||||||||||||||||||||||||||
57 | otl_stream& operator<<(otl_long_unicode_string& s); | 往流中写入UNICODE LOB类型 | |||||||||||||||||||||||||||||||||
58 | otl_stream& operator<<(const OTL_UNICODE_CHAR_TYPE& c); | 在定义了OTL_UNICODE_CHAR_TYPE宏的情况下,往流中写入一个UNICODE字符 | |||||||||||||||||||||||||||||||||
59 | otl_stream& operator<<(const OTL_UNICODE_CHAR_TYPE* s); | 往流中写入一个UNICODE字符串 | |||||||||||||||||||||||||||||||||
60 | otl_stream& operator>>(const OTL_UNICODE_STRING_TYPE& s); | 在定义了OTL_UNICODE/OTL_UNICODE_CHAR_TYPE/OTL_UNICODE_STRING_TYPE宏的情况下,把一个字符串写入到流中。(可以是大对象) | |||||||||||||||||||||||||||||||||
61 | otl_stream& operator<<(const char c); | 往流中写入一个字符 | |||||||||||||||||||||||||||||||||
62 | otl_stream& operator<<(const unsigned char c); | 往流中写入一个无符号的字符 | |||||||||||||||||||||||||||||||||
63 | otl_stream& operator<<(const char* s); | 往流中写入一个以NULL结尾的字符串 | |||||||||||||||||||||||||||||||||
64 | otl_stream& operator<<(const unsigned char* s); | 往流中写入一个以NULL结尾的无符号的字符串 | |||||||||||||||||||||||||||||||||
65 | otl_stream& operator<<(const otl_long_string& d); | 往流中写入LOB类型对象 | |||||||||||||||||||||||||||||||||
66 | otl_stream& operator<<(const std::string& s); | 在定义了OTL_STL宏的情况下,往流里面写入一个STL的string类型。 | |||||||||||||||||||||||||||||||||
67 | otl_stream& operator<<(const ACE_TString &s); | 在这、定义了OTL_ACE宏的情况下,往流中写入一个ACE_TString类型。 | |||||||||||||||||||||||||||||||||
68 | otl_stream& operator<<(const USER_DEFINED_STRING_CLASS &s); | 在定义了USER_DEFINED_STRING_CLASS和OTL_USER_DEFINED_CLASS_ON宏的情况下,往流中写入一个用户自定义的字符串类型 | |||||||||||||||||||||||||||||||||
69 | otl_stream& operator<<(const int n); | 往流中写入一个有符号的整型 | |||||||||||||||||||||||||||||||||
70 | otl_stream& operator<<(const unsigned u); | 往流中写入一个无符号的整型 | |||||||||||||||||||||||||||||||||
71 | otl_stream& operator<<(const short sh); | 往流中写入一个短整型 | |||||||||||||||||||||||||||||||||
72 | otl_stream& operator<<(const long int l); | 往流中写入一个长整型 | |||||||||||||||||||||||||||||||||
73 | otl_stream& operator<<(const float f); | 往流中写入4字节长度的浮点型 | |||||||||||||||||||||||||||||||||
74 | otl_stream& operator<<(const double d); | 往流中写入8字节长度的浮点型 | |||||||||||||||||||||||||||||||||
75 | otl_stream& operator<<(const OTL_BIGINT d); | 在定义了OTL_BIGINT的情况下。对于不支持bigint的ODBC来说,该操作能将一个数字串转换为64位的有符号整型。 必须定义OTL_STRING_TO_BIGINT/OTL_BIGINT_TO_STRING。 | |||||||||||||||||||||||||||||||||
76 | otl_stream& operator<<(const otl_null &n); | 往流中写入NULL值。 OTL定义了一个匿名的NULL类,如下: class otl_null { public: otl_null(); ~otl_null(); }; | |||||||||||||||||||||||||||||||||
77 | otl_stream& operator<<(const otl_datetime& dt); | 往流中写入日期/时间类型。OTL定义了自已的一个otl_datetime类,如下:
fraction/frac_precision两个成员是由数据库决定的。具体数据库支持的精度不一样,该两个成员变量值也不一样。 | |||||||||||||||||||||||||||||||||
78 | otl_stream& operator<<(const otl_XXX_tab<…>& tab); | 往流中写入SQL的表信息 | |||||||||||||||||||||||||||||||||
79 | otl_stream& operator<<(otl_lob_stream& lob); | 往流中写入otl_lob_stream对象 | |||||||||||||||||||||||||||||||||
80 | void set_all_column_types (const unsigned int amask=0); | 设置一组输出字段的类型。可以有如下设置: otl_all_num2str otl_all_date2str otl_all_num2str | otl_all_date2str | |||||||||||||||||||||||||||||||||
81 | void set_column_type (const int column_ndx, const int col_type, const int col_size=0); | 设置输出字段的类型。 column_ndx索引为输出字段的相对位置,如1、2、3. col_type是由OTL定义的一组类型。 col_size是指用来存放新的类型的长度,该长度只对otl_var_char类型有效,对于数值类型能自动计算得出。 该函数能被简单的SELECT语句、带游标的SELECT语句和返回结果集的SELECT语句调用。 该函数里面的类型组合如下:
该函数强烈要求限制使用,只有在那些确实因为数值容纳不下的情况下,才允许使用otl_var_char进行转换 | |||||||||||||||||||||||||||||||||
82 | int get_dirty_buf_len(); | 返回流的缓冲区里面脏数据的行数。所谓的脏数据,指的是对于缓冲区大于1的时候,当执行SQL语句的时候,缓冲区未被填满的情况下,已经使用了的缓冲区条数。如缓冲区为100条记录,在执行某SELECT语句后,取出30条数据,那么缓冲区此时不会被刷新,缓冲区里面有30条数据,执行此函数后就返回30. 如果缓冲区长度被设置为1后,该函数总是返回0.因为如果缓冲区为1后,每次取出记录都会填满缓冲区,此时缓冲区被填满后就会自动刷新,所以缓冲区里面未被刷新的数据总是0条。所以总是返回0. 该函数同样可以返回SELECT语句的游标或结果集缓冲区里面的脏数据。 对于其它的(非SELECT/UPDATE/DELETE/UPDATE)SQL语句块或存储过程,该函数未定义。 | |||||||||||||||||||||||||||||||||
83 | int get_prefetched_row_count(); | 返回SELEC语句、有结果集的存储过程或ORACLE的游标的累计的结果行数。而对于其他的存储过程则总是返回0. 如:对于某SELECT语句,第一次执行返回50,第二次执行返回50,第三次执行结果返回23,那么执行该函数时候,依次返回的的结果是50、100、123. | |||||||||||||||||||||||||||||||||
84 | void skip_to_end_of_row(); | 把读取流的指针定位到当前行的末尾。以便下次读取流的时候,又从逻辑行的第一列开始读取。 | |||||||||||||||||||||||||||||||||
85 | void check_end_of_row(); | 检测是否到达行的末尾。如果没有到达行的末尾,该函数抛出END_OF_ROW check failed异常。 | |||||||||||||||||||||||||||||||||
86 | otl_stream& operator>>(otl_stream& (*pf) (otl_stream&)); | 该函数调用(*pf)流函数(check_end_of_row())。常用法如下: s>>f1>>f2>>endr; | |||||||||||||||||||||||||||||||||
87 | otl_stream& operator<<(otl_stream& (*pf) (otl_stream&)); | 同上,把输出定义为输入。 |
这篇关于OTL翻译(5) -- otl_stream类(接上)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!