超难有关问题:BCB怎样获得包含'\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’+'='
------解决方案--------------------
------解决方案--------------------
http://topic.****.net/t/20030702/10/1980961.html
这个也许对楼主有点用吧...好运...
------解决方案--------------------
以Blob 字段读取出来, 这样是否可行?
------解决方案--------------------
char遇到0x0就会结束,用byte类型的缓冲.
------解决方案--------------------
怎么写进去的就怎么读出来。你原来肯定不是按字符串写的吧
试试ADOTable1->FieldByName("AAA")->AsVariant
------解决方案--------------------
用int都可以啦。
int xx[50];
只要是数组就行,而且长度要自己知道。
在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’+'='
------解决方案--------------------
------解决方案--------------------
http://topic.****.net/t/20030702/10/1980961.html
这个也许对楼主有点用吧...好运...
------解决方案--------------------
以Blob 字段读取出来, 这样是否可行?
------解决方案--------------------
char遇到0x0就会结束,用byte类型的缓冲.
------解决方案--------------------
怎么写进去的就怎么读出来。你原来肯定不是按字符串写的吧
试试ADOTable1->FieldByName("AAA")->AsVariant
------解决方案--------------------
用int都可以啦。
int xx[50];
只要是数组就行,而且长度要自己知道。