mysql字符串类型数据不一致(50分)

  • 主题发起人 主题发起人 hwsh
  • 开始时间 开始时间
H

hwsh

Unregistered / Unconfirmed
GUEST, unregistred user!
从串口一次取512个字符数据,存到数据库后,再取出来,两个数据就不一样了,有部分是一样的,中间加了一些其他数据。程序如下:(数据库是Mysql),帮忙看看是什么原因
var
Str1,str2: String;
i:integer;
begin
ComPort1.ReadStr(Str1, Count);
with ADODataSet1 do
begin
insert;
FieldByName('Tem').AsString :=copy(str1,1,512);//直接用str1也一样
post;
str2:=copy(FieldByName('Tem').AsString,1,512);
end;
//一下是数据显示
memo1.Clear;
memo2.Clear;
for i:=0 to 511 do
begin
memo1.Text :=memo1.Text+inttohex(ord(str),2)+' ';
memo2.Text :=memo2.Text+inttohex(ord(str1),2)+' ';
end;
 
TEM字段类型!
 
我觉的也是类型的问题,但不知应该设成什么类型,现在用的是varchar类型
 
长度是512
 
和字符集也没有关系?
 
还是没有解决,今天在access中试了一下也一样,但如果数据是可显示字符如‘0’-‘9’、‘a’-‘z’就没问题。
 
是不是有中间有空字符存在
 
应该没有,我让数据从1开始,一直到255,写到数据库的数据都对,但从数据库读出的数据到了B4H(180D)后就错了。
 
ord(str)==ord(str2)?
 
to skadon:
是我笔误,调试的时候已经改过来了。
问题已经困扰好几天了。还是没解决。
 
网上搜搜关于MYSQL的字符集的资料,你就知道为啥了!
 
字符集我设成了utf8(重新装了mysql)。还是一样。
 
这么难解决呀?
现在不是显示的乱码问题,要的是每个字符数据,按道理和字符集没有关系
 
用longblob类型
 
后退
顶部