请教高手怎么解决?

解决方案 »

  1.   

    doc文件不是一般的txt文件,你保存后是不是用word来打开啊,如果用记事本打开当然乱码
      

  2.   

    问题好象出在LOADFROMFILE和SAVETOFILE,建议用流方式直接采用二进行制读写文件就不会出现这类问题.
      

  3.   

    word文件存入数据库应该用oracle的blob字段,
    设表为 create table test(id integer,mydoc blob)写时用这种方式:
        ADOQuery1->Close();
      ADOQuery1->SQL->Text="Insert into test values(:id,:mydoc)";
      ADOQuery1->Parameters->Items[0]->Value=1;
      ADOQuery1->Parameters->Items[1]->LoadFromFile("d:\\temp\\aaa.doc",ftBlob );
      ADOQuery1->ExecSQL();
    读出时用:
      ADOQuery1->Close();
      ADOQuery1->SQL->Text="select mydoc from test where id=1";
      ADOQuery1->Open();
      ((TBlobField *)ADOQuery1->FieldByName("mydoc"))->SaveToFile("d:\\temp\\aaa1.doc");
      

  4.   

    不好意思,以为是BCB版,Delphi的:
    写入
      ADOQuery1.Close;   
      ADOQuery1.SQL.Text:='insert   into   test1   values(:id,:mydoc)';   
      ADOQuery1.Parameters[0].Value:=1;   
      ADOQuery1.Parameters[1].LoadFromFile('d:\temp\aaa.doc',ftBlob );   
      ADOQuery1.ExecSQL;   
    读出
        ADOQuery1.Close;   
      ADOQuery1.SQL.Text:='select  mydoc   from   test1   where   id=1';   
      ADOQuery1.Open;   
      (ADOQuery1.FieldByname('pic')   AS   TBlobField).SaveToFile('d:\temp\aaa.doc');
      

  5.   

    晕,还是错了一个字段名(另外表名为test1),最后一句为:
    (ADOQuery1.FieldByname('mydoc') AS TBlobField).SaveToFile('d:\temp\aaa.doc');