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

超难有关问题:BCB怎样获得包含'\0'的字段数据

2012-03-14 
超难问题:BCB怎样获得包含\0的字段数据在SQL Server的字段AAA:char(16)中的数据是ABC+Char(0)+Char(0)

超难问题:BCB怎样获得包含'\0'的字段数据
在SQL Server的字段AAA:char(16)中的数据是'ABC'+Char(0)+Char(0)+'LM'+Char(0)+'='共计9个字节.
在BCB中
  TField *XX = ADOTable1->FindField("AAA");
  XX->DataSize;//确得到3个字节,XX->Value也是"ABC"

是VCL的问题吗,有什么办法得到完整的字段数据?

[解决办法]
不是vcl的问题,字符串是以\0结尾的,后面的数据自然读不出。
你用TBytes AsBytes;这个类型可以取到\0后面的数据
[解决办法]
c++builder 中
char aaa[16];
String ss;
ss="ABC"+Char(0)+Char(0)+"LM"+Char(0)+"=";
strcpy(aaa,ss.c_str());

SQL Server

是'ABC'+‘0’+‘0’+'LM'+‘0’+'='
[解决办法]

探讨
不是vcl的问题,字符串是以\0结尾的,后面的数据自然读不出。
你用TBytes AsBytes;这个类型可以取到\0后面的数据

[解决办法]
http://topic.csdn.net/t/20030702/10/1980961.html
这个也许对楼主有点用吧...好运...
[解决办法]
以Blob 字段读取出来, 这样是否可行?
[解决办法]
char遇到0x0就会结束,用byte类型的缓冲.
[解决办法]
怎么写进去的就怎么读出来。你原来肯定不是按字符串写的吧

试试ADOTable1->FieldByName("AAA")->AsVariant
[解决办法]
用int都可以啦。
int xx[50];

只要是数组就行,而且长度要自己知道。

热点排行