blob类型好像不能直接这样操作。我做过一个系统用blob类型,怎么插入都不行,由于时间太紧我就改为了long raw类型了。在delphi中可以这样插入:
ADOStoredProc1.Parameters[0].Value:=1;
ADOStoredProc1.Parameters[1].LoadFromFile  
              ('L:\PicMgr\Pic\convert1.bmp',ftBlob);
ADOStoredProc1.Prepared;
ADOStoredProc1.ExecProc;
我用的是存储过程。

解决方案 »

  1.   

    不是你的程序有问题,是BDE的问题。
    你需要给BDE打一个补丁。
      

  2.   

    我升级了BDE5.1.1 for oracle补丁后还是不行,我该怎么做呢?谢谢!
      

  3.   

    TStringStream *MailContentStream;
              try
              {
                   MailContentStream=new TStringStream(文件路径);
              }
              catch(...)
              {
                   SendMessage(hSendMail,WM_MAILSENDFAILURE,NULL,NULL);
                   ExitThread(EXIT_FAILURE);
              }
              sSQL=Format("INSERT INTO MAILARCHIVES ("
                          "MAILNUMBER,"
                          "SENDER,"
                          "RECEIVERLIST,"
                          "SUBJECT,"
                          "SENDDATE,"
                          "REPLY,"
                          "ALTERNATION,"
                          "SECRETLEVEL,"
                          "GETITOVER,"
                          "MAILTYPE,"
                          "MAILCONTENT) "
                          "VALUES("
                          "%d,"
                          "'%s',"
                          "'%s',"
                          "'%s',"
                          "%s,"
                          "%d,"
                          "%d,"
                          "%d,"
                          "%d,"
                          "%d,"
                          ":sMsgContent)",
                          OPENARRAY(TVarRec,(
                          iMailSequenceNumber,                                             //邮件号
                          sFromName,                                                       //发送人
                          sToName,                                                         //接受人
                          "",                                                              //发送主题,默认为空
                          "TO_DATE('"+RDate.FormatString("yyyy-mm-dd")+"','yyyy-mm-dd')",  //发送时间
                          0,                                                               //是否回复,默认为0
                          0,                                                               //是否浏览,默认为0
                          -1*iSumofReceiver,
                          0,                                                               //密级,默认为0
                          0                                                               //邮件类型,默认为0
                          )));
              ESDataModule->ADOQuery->Close();
              ESDataModule->ADOQuery->SQL->Clear();
              ESDataModule->ADOQuery->SQL->Add(sSQL);
              ESDataModule->ADOQuery->Parameters->ParamByName("sMsgContent")->LoadFromStream(MailContentStream,ftBlob);
              ESDataModule->ADOQuery->ExecSQL();