网站备案归哪里管,四川做网站公司哪家好,微采服企腾网,成都网站制作定制C使用otlv4在做插入时#xff0c;有一些设计的坑需要注意
插入数据#xff1a;
当要给表中插入单个字符时#xff0c;数据库表设计使用varchar(1)是合理的#xff0c;但是otlv4一直报错char。 后续查很久才知道#xff0c;otlv4所写的绑定的字符数组的长度应该实际数组…C使用otlv4在做插入时有一些设计的坑需要注意
插入数据
当要给表中插入单个字符时数据库表设计使用varchar(1)是合理的但是otlv4一直报错char。 后续查很久才知道otlv4所写的绑定的字符数组的长度应该实际数组的长度相同包含’/0’即比数据库中定义的字符串的长度多一位因为数据库中不存储末位的’\0’。 //行得通的SQL
otl_stream o(1, //buffer size should be 1 always on INSERT.insert into tb3 values(:f1char[32],:f2char[64],:f3float),sql_server // connectobject);o 临时测试 临时玩 111.1f;
*///要插入的表列类型是varchar(1)至少需要char[2]
otl_stream o(1, //buffer size should be 1 always on INSERT.insert into mytb values(:f1char[2]), sql_server // connectobject);o b ;此外sql server中用nchar[]、varchar[n]这种在语句中一律用char[n]即可。
下面也记录了简单的查看数据方式
查看数据
void DataStore::test()
{try{otl_stream o(1024, select * from tb3, sql_server);char InstrumentID[32], InstrumentName[64];double LastPrice;while (!o.eof()){o InstrumentID InstrumentName LastPrice;char buf[256] { 0 };sprintf(buf, 合约ID:%s, 合约名:%s, 价格:%.02f, InstrumentID, InstrumentName, LastPrice);cout buf endl;}cout 数据库test读取正常 endl;o.close();}catch (otl_exception p){cout DBtest出错endl;}
}