我想做一个转换程序:将MySQL表中的数据导入MSSQL Server 8中,原MySQL表中的Photo中只保存图像文件的路径(即是字符串型),现想导入到MSSQL表的BLOB类型字段内。SQL语句是Insert Into TableName (CardID,......,Photo) Values (:CardID......,:Photo)'如何给这个Photo参数赋值

解决方案 »

  1.   

    procedure TFormReportDef.BitBtn2Click(Sender: TObject);
    var
      OLEStream: TFileStream;begin
      if OpenDialog1.FileName <> '' then
      begin
        OleContainer1.Close;
        OLEStream := TFileStream.Create(OpenDialog1.FileName, fmOpenRead);
        ADODataSet1.Insert;
        ADODataSet1['Name'] := Edit1.Text;
        ADODataSet1['Memo'] := Memo1.Text;
        (ADODataSet1.FieldByName('TemplateFormat') as
          TBlobField).LoadFromStream(OLEStream);
        ADODataSet1['Ext'] := RightStr(OpenDialog1.FileName, 3);
        ADODataSet1.Post;
        FreeAndNil(OleStream);
      end;
    end;
    procedure TFormReportDef.BitBtn4Click(Sender: TObject);
    var
      sFileName: string;
      OLEStream: TMemoryStream;
    begin
      sFileName := ExtractFilePath(Application.ExeName) + 'tempBlob' + '.' +
        RightStr(ADODataSet1.FieldByName('Ext').AsString, 3);
      OLEStream := TMemoryStream.Create;
      OLEStream.LoadFromStream(ADODataSet1.CreateBlobStream(ADODataSet1.FieldByName('TemplateFormat'), bmRead));
      OLEStream.SaveToFile(sFileName);
      OleContainer1.CreateObjectFromFile(sFileName, false);
    end;前两天写的一个存取blob数据的代码,测试通过,数据库是sql server 2000,blob字段类型是image,不能是text
      

  2.   

    http://expert.csdn.net/Expert/topic/1450/1450421.xml?temp=.6320459