首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ Builder >

CB2009无法解释换行的字符串,求教,该怎么解决

2013-01-02 
CB2009无法解释换行的字符串,求教代码如下:sprintf(tmp_sql,select AAAAAAAAAAAAAAAAAAAAAAAAAAAAA\BBBBB

CB2009无法解释换行的字符串,求教
代码如下:


sprintf(tmp_sql,"select AAAAAAAAAAAAAAAAAAAAAAAAAAAAA\
                 BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB='%s'", var_char1);


在CB6.0中,会将其解析为select AAAAAAA BBBBBBB
在CB2009(网上下的精简版190M那个)中,被解析为select AAAAAAA \t\t\t\t\t\t\t BBBBBBB

这样解析字符串明显是错误的,导致数据库查询出错。

请问在CB2009中应该如何设置呢?还是有其他的解决办法?

[解决办法]
sprintf(tmp_sql, "select AAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
                 "BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB='%s'", var_char1);



[解决办法]
补充一下:一定要注意,第一行的末尾是没有分号的。

如果用TCHAR,则要这样写:
_stprintf(tmp_sql, TEXT("select AAAAAAAAAAAAAAAAAAAAAAAAAAAAA")
                 TEXT("BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB='%s'"), var_char1);


如果用宽字节的函数,则要这样写:
swprintf(tmp_sql, L"select AAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
                 L"BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB='%s'", var_char1);

[解决办法]
这不是什么版本的问题,你原先的写法本来就不标准。C++Builder6.0不提示出错并不代表你的写法就正确。

热点排行