采用Adoquery从数据库查找数据,数据库中该字段为text类型,往WORD中写入时出现乱码
使用语句如下:
TempStr := Adoquery1.FieldValues['Test']);
WordDocument1.Range.InsertAfter(TempStr);//显示乱码改成TempStr := Adoquery1.Fields[0].AsString;
还是乱码写入语句没问题,一般的string类型可以正常显示

解决方案 »

  1.   

    你Showmessage(TempStr)看是不是乱码。
      

  2.   

    显示tempStr还是乱码,我觉得可能是我们存入数据的方式不一样
    我是用流的方式存的,代码如下:
    var
      TempStream: TMemoryStream;  RichEdit1.Lines.SaveToStream(TempStream);
      AdoQuery1.Parameters.ParamByName('Test').LoadFromStream(TempStream,ftString);你的数据应该是直接存入的吧?
      

  3.   

    RichEdit1.Lines.SaveToStream(TempStream)是直接把RichEdit1的所有内容存到流中的,包括控制和字符串,你可以直接把RichEdit1.Lines.Text写到Word中试试。
      

  4.   


    之前的数据是这么存入数据库的,不过现在写到WORD里面是需要从数据库中读出的
    我用RichEdit来接收数据库中的数据,再将它写入到WORD里面这种方法是可以的,不过我想知道有没有一个方法,可以不借用这个控件而直接将流数据转化为普通的STRING类型