OTL翻译(5) -- otl_stream类(接上)

2024-06-15 02:38
文章标签 翻译 stream 接上 otl

本文主要是介绍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类,如下:

序号

成员变量

说明

1

int year

2

int month

3

int day

4

int hour

小时

5

int minute

分钟

6

int second

7

unsigned long fraction

微秒部分,默认为0

8

int frac_precision

秒的精度部分,默认为0

9

short int tz_hour

定义了OTL_ORA_TIMESTAMP或OTL_ODBC_TIME_ZONE宏情况下的时区小时

10

short int tz_minute

定义了OTL_ORA_TIMESTAMP或OTL_ODBC_TIME_ZONE宏情况下的时区分钟

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默认对应类型

OTL兼容的类型

1

NUMBER(ORACLE)

otl_var_double

otl_var_char, otl_var_int, otl_var_float, otl_var_short, otl_var_unsigned_int

2

NUMBER,FLOAT,REAL,MONEY,DECIMAL(MS SQL SERVER/SYBASE/DB2)

otl_var_double

otl_var_char, otl_var_int, otl_var_float, otl_var_short, otl_var_unsigned_int, otl_var_long_int

3

INT(MS SQL SERVER/SYBASE/DB2)

otl_var_int

otl_var_char, otl_var_double, otl_var_float, otl_var_short, otl_var_unsigned_int, otl_var_long_int

4

SMALLINT,TINYINT(MS SQL SERVER/SYBASE/DB2)

otl_var_short

otl_var_char, otl_var_int, otl_var_float, otl_var_double, otl_var_unsigned_int, otl_var_long_int

5

DATE(ORACLE),DATETIME(MS SQL SERVER/SYBASE)

otl_timestamp

otl_var_char

6

LONG ( ORACLE)

otl_var_varchar_long

otl_var_char (<=32000 bytes)

7

TEXT(MS SQL SERVER/SYBASE)

otl_var_varchar_long

otl_var_char(<= max. size of varchar, e.g. <=8000 in MS SQL)       

该函数强烈要求限制使用,只有在那些确实因为数值容纳不下的情况下,才允许使用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类(接上)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1062206

相关文章

解读Redis秒杀优化方案(阻塞队列+基于Stream流的消息队列)

《解读Redis秒杀优化方案(阻塞队列+基于Stream流的消息队列)》该文章介绍了使用Redis的阻塞队列和Stream流的消息队列来优化秒杀系统的方案,通过将秒杀流程拆分为两条流水线,使用Redi... 目录Redis秒杀优化方案(阻塞队列+Stream流的消息队列)什么是消息队列?消费者组的工作方式每

java Stream操作转换方法

《javaStream操作转换方法》文章总结了Java8中流(Stream)API的多种常用方法,包括创建流、过滤、遍历、分组、排序、去重、查找、匹配、转换、归约、打印日志、最大最小值、统计、连接、... 目录流创建1、list 转 map2、filter()过滤3、foreach遍历4、groupingB

论文翻译:arxiv-2024 Benchmark Data Contamination of Large Language Models: A Survey

Benchmark Data Contamination of Large Language Models: A Survey https://arxiv.org/abs/2406.04244 大规模语言模型的基准数据污染:一项综述 文章目录 大规模语言模型的基准数据污染:一项综述摘要1 引言 摘要 大规模语言模型(LLMs),如GPT-4、Claude-3和Gemini的快

论文翻译:ICLR-2024 PROVING TEST SET CONTAMINATION IN BLACK BOX LANGUAGE MODELS

PROVING TEST SET CONTAMINATION IN BLACK BOX LANGUAGE MODELS https://openreview.net/forum?id=KS8mIvetg2 验证测试集污染在黑盒语言模型中 文章目录 验证测试集污染在黑盒语言模型中摘要1 引言 摘要 大型语言模型是在大量互联网数据上训练的,这引发了人们的担忧和猜测,即它们可能已

JavaSE(十三)——函数式编程(Lambda表达式、方法引用、Stream流)

函数式编程 函数式编程 是 Java 8 引入的一个重要特性,它允许开发者以函数作为一等公民(first-class citizens)的方式编程,即函数可以作为参数传递给其他函数,也可以作为返回值。 这极大地提高了代码的可读性、可维护性和复用性。函数式编程的核心概念包括高阶函数、Lambda 表达式、函数式接口、流(Streams)和 Optional 类等。 函数式编程的核心是Lambda

excel翻译软件有哪些?如何高效提翻译?

你是否曾在面对满屏的英文Excel表格时感到头疼?项目报告、数据分析、财务报表... 当这些重要的信息被语言壁垒阻挡时,效率和理解度都会大打折扣。别担心,只需3分钟,我将带你轻松解锁excel翻译成中文的秘籍。 无论是职场新人还是老手,这一技巧都将是你的得力助手,让你在信息的海洋中畅游无阻。 方法一:使用同声传译王软件 同声传译王是一款专业的翻译软件,它支持多种语言翻译,可以excel

MonoHuman: Animatable Human Neural Field from Monocular Video 翻译

MonoHuman:来自单目视频的可动画人类神经场 摘要。利用自由视图控制来动画化虚拟化身对于诸如虚拟现实和数字娱乐之类的各种应用来说是至关重要的。已有的研究试图利用神经辐射场(NeRF)的表征能力从单目视频中重建人体。最近的工作提出将变形网络移植到NeRF中,以进一步模拟人类神经场的动力学,从而动画化逼真的人类运动。然而,这种流水线要么依赖于姿态相关的表示,要么由于帧无关的优化而缺乏运动一致性

linux dlopen手册翻译

名称 dlclose, dlopen, dlmopen 打开和关闭一个共享对象 简介 #include <dlfcn.h>void *dlopen(const char*filename, int flags);int dlclose(void *handle);#define _GNU_SOURCE#include <dlfcn.h>void *dlmoopen(Lmid_t lm

从计组中从重温C中浮点数表示及C程序翻译过程

目录 移码​编辑  传统浮点表示格式 浮点数的存储(ieee 754)->修炼内功 例子:   ​编辑 浮点数取的过程   C程序翻译过程 移码  传统浮点表示格式 浮点数的存储(ieee 754)->修炼内功 根据国际标准IEEE(电⽓和电⼦⼯程协会)  32位 例子:    64位    IEEE754对有效数字M和

Java stream使用与执行原理

stream简介 Stream: A sequence of elements supporting sequential and parallel aggregate operations stream为sequential即单线程串行操作,parallelStream支持并行操作,本文只讨论sequential的stream。 stream常用操作 @Datastatic