例如Unicode字串"abhor(פ') לתעב"
以上串长度14,28个字节。
如果Access中"jiexi"字段是备注型,则Ado中是ftMemo类型,ftMemo是继承自ftBlob
AdoQuery1.FieldByName('JieXi').asVariant;
//这个Variant,Delphi会把它处理成string,它的长度是14,你会得到问号
如果这样取值
var
ms : TStream;
begin
ms := AdoQuery1.CreateBlobStream(AdoQuery1.FieldByName('JieXi'));
ShowMessage(IntToStr(ms.Size));
//这里你会看到它的长度还是14,而且我查看过它的十六进制码,
发现应该是28个字节的串,只正确截了后面14个,前面14个乱了。
显示的结果是前七个字符是乱码,不是问号,后七个字符是正确的。
end;
*****************
但是如果"JieXi"字段在Access中用"Ole 对象"类型,则
procedure TTntForm1.TntButton2Click(Sender: TObject);
var
MyVariant : widestring;
ms : TStream;
iSize : int64;
begin
TntRichEdit1.Clear;
ms := AdoQuery1.CreateBlobStream(adoQuery1.FieldByName('Jiexi'),bmRead);
try
iSize := ms.Size;
SetLength(MyVariant,iSize div 2);
ms.Read(MyVariant[1],iSize);
TntRichEdit1.Text := MyVariant;
finally
ms.Free;
end;
end;
以上这段代码,可以正确显示你的希伯莱文。即你可以将备注型改成Ole对象型。
////////////////
还有Access数据库转到SqlServer只很容易的,只要在SqlServer中新建一个数据库,在利用
"导入数据"功能就可以了。