最近做的项目中对于数据库的操作为了有一个统一的操作,所以采用了otl技术作为中间媒介,当然,由于是用了别人的库,所以还是出现了很多问题。通过对问题进行分析,也形成了一些常用问题的处理方法。

在用otl绑定otl_stream的字符串或者字符类型变量中,总是会出现Incompatible data types in stream operation这样的错误,也让我苦恼了很久,后来发现是因为对otl_stream绑定变量的定义的不清晰,以下我用插入语句给大家做个分析:

插入语句中,所写的绑定的字符数组的长度应该实际数组的长度相同(包含'/0'),即比数据库中定义的字符串的长度多以为,因为数据库中不存储末位的'\0'。

例如:

 int f1=;
char f2[]="test";
otl_stream os(,"insert into table(f1,f2) values(:1<int>,:2<char[51]>",db);
os<<f1<<f2;
其中,数据库中f2长度为varchar()

对于otl中要插入char类型,必须指定char的长度,即在otl中对于char类型的操作皆按上述的字符数组的规则,即绑定的长度应为2。否则会出现Incompatible data types in stream operation的错误

例如:

  int f1=;
char f2='a';
otl_stream os(,"insert into table(f1,f2) values(:1<int>,:2<char[2]>",db);
os<<f1<<f2;
其中,数据库中f2为varchar(),即char

我在项目中的Mysql数据库中定义了无符号的smallint类型,即为C++中的unsigned short,本来是想直接传入的,后来也总是出现Incompatible data types in stream operation的错误,想了下才知道没有理清otl绑定的类型到底有哪些。在otl中,绑定的数值类型有float,double,int,short,bigint,unsigned(32位无符号),详情请看otl_stream流相关绑定变量。所以若用了unsigned short类型,想绑定otl_stream流时,可以先赋值给unsigned int类型,传入时用unsigned接收,则传入正确,即是截取作用。

转载请注明:http://www.cnblogs.com/fnlingnzb-learner/p/5922673.html

otl中遇到的一些字符数组长度问题的更多相关文章

  1. C语言中,当计算字符数组长度时,用sizeof 和strlen 的原理及两者的区别

    字符数组的长度计算:必须以终止符’\0'作为边界,但对字符数组赋值时,有两种方式: 1:定义时用字符初始化 (1)char chs[7] = {'a', 'c', '0', 'z', '3','d'} ...

  2. 计算字符数组长度,用strlen 与 sizeof 的原理与区别

    遇到个坑,定义了一个字符数组 unsigned ;i<;i++) { buff[i] = ; } 然后用串口发送函数: write(fd, buff, strlen(buff)); 却发现串口一 ...

  3. php中count获取多维数组长度的方法

    转自:http://www.jb51.net/article/57021.htm 本文实例讲述了php中count获取多维数组长度的实现方法.分享给大家供大家参考.具体分析如下: 先来看看下面程序运行 ...

  4. js中split()方法得到的数组长度

    js 中split(",")方法通过 ”,“ 分割字符串, 如果字符串中没有 “,” , 返回的是字符串本身 var str = “abc”://分隔符个数为0 var newSt ...

  5. 099、Java中String类之字符数组与字符串的转换

    01.代码如下: package TIANPAN; /** * 此处为文档注释 * * @author 田攀 微信382477247 */ public class TestDemo { public ...

  6. C#中分割字符串输出字符数组

    来自博客园 http://www.cnblogs.com/yugen/archive/2010/08/18/1802781.html   1.用字符串分隔: using System.Text.Reg ...

  7. C#编程中的Image/Bitmap与base64的转换及 Base-64 字符数组或字符串的长度无效问题 解决

    最近用base64编码传图片遇到了点问题,总结下. 首先总结下base64编码的逻辑,来自网络:https://www.cnblogs.com/zhangchengye/p/5432276.html ...

  8. c语言中的字符数组与字符串

    1.字符数组的定义与初始化 字符数组的初始化,最容易理解的方式就是逐个字符赋给数组中各元素. char str[10]={ 'I',' ','a','m',' ',‘h’,'a','p','p','y ...

  9. C++中字符数组和字符串string

    字符数组 C++中字符数组用char str[]能够用来表示一个字符串. (1)   数组的大小和字符串的长度. 数组的大小一定要大于字符串的长度,由于系统会自己主动补上一个'\0'作为字符串的结束标 ...

随机推荐

  1. Ionic Js二十:选项卡栏操作

    ion-tabs ion-tabs 是有一组页面选项卡组成的选项卡栏.可以通过点击选项来切换页面. 对于 iOS,它会出现在屏幕的底部,Android会出现在屏幕的顶部(导航栏下面). 用法 < ...

  2. APP的UI自动化测试框架及平台化探索

    顾铮,10年+测试及测试开发相关经验,2014年加入京东,曾主导设计开发UI测试框架,参与CI测试平台建设,现负责iOS侧的工具,框架建设.在UI自动化,性能测试,单元测试方面有较深入研究,在App, ...

  3. JQuery基础-DAY1

    jQuery介绍 是一个轻量级的js框架/库,其宗旨是write less do more. jQuery对象 js的对象叫做dom对象 使用jQuery框架产生的对象是jQuery对象,是对dom对 ...

  4. Centos7(Firewall)防火墙开启常见端口命令

    使用云服务器的,一定要注意开启安全组配置的响应端口 Centos7默认安装了firewalld,如果没有安装的话,则需要YUM命令安装:firewalld真的用不习惯,与之前的iptable防火墙区别 ...

  5. java多线程技术之条件变量

    上一篇讲述了并发包下的Lock,Lock可以更好的解决线程同步问题,使之更面向对象,并且ReadWriteLock在处理同步时更强大,那么同样,线程间仅仅互斥是不够的,还需要通信,本篇的内容是基于上篇 ...

  6. SQL Server中执行正则表达式

    总体方案:写function,再执行update语句. 一.查询函数 -- ============================================= -- Author: <l ...

  7. Codeforces Round #353 (Div. 2) A. Infinite Sequence 水题

    A. Infinite Sequence 题目连接: http://www.codeforces.com/contest/675/problem/A Description Vasya likes e ...

  8. SVN服务器与客户端下载地址_搭建使用

    下载地址: http://subversion.apache.org/packages.html Windows CollabNet (supported and certified by Colla ...

  9. PHP自学之路---雇员管理系统(1)

    前面已经介绍了Zend studio工具的使用以及软件开发的基本阶段,下面就是我们第一个练习,雇员管理系统,从设计到实现来简单介绍下: 开发环境: 服务器:基于Linux 2.618环境下配置PHP服 ...

  10. window api 监控

    http://pnig0s1992.blog.51cto.com/393390/704189