请教各位高手,怎样把DLL文件存入SQL Server,本人折腾了几天了就是没有搞出来,如果有高手能搞定,一定狂加分。

解决方案 »

  1.   

    在表中建一个Image类型的字段field1
    query1.close;
    query1.SQL.text := 'select * from 你的表';
    query1.Open;
    query1.edit;
    TBlobField(query1.fieldbyname('field1').loadfromfile('d:\aa.dll');
    query1.post;保存
    TBlobField(query1.fieldbyname('field1').Savetofile('d:\bb.dll');
      

  2.   


    最好这样,同时适应Oracle和MSSQL
    增加:
    Query.Close;
    Query.SQL.Clear;
    Query.SQL.Add('INSERT INTO myimages(FileName,pic) VALUE(''Image1'',:pic)');
    Query.ParamByName('pic').LoadFromFile('D:\Hasd.dll',ftBlob);
    Query.ExecSQL; 修改:Query.Close;
    Query.SQL.Clear;
    Query.SQL.Add('UPDATE myimages SET pic=:pic WHERE filename=''dll2''');
    Query.ParamByName('pic').LoadFromFile('D:\Hasd2.dll',ftBlob);
    Query.ExecSQL;
    如果问题得到解决,别忘了结贴呀!!!!!!
      

  3.   

    我也是这样写的,但是不行,DLL文件能写进去,但是无论你写那个DLL文件,在数据库是都显示为0x4D5A50000200000004000F00FFFF0000B80000000000000040001A00000000000000000000000000000000000000000000000000000000000000000000010000BA10000E1FB409CD21B8014CCD219090546869732070726F6772616D206D7573742062652072756E20756E6465722057696E33320D0A243700000000000000代码如下:
    procedure TForm1.Button3Click(Sender: TObject);
    var
      Query : TAdoQuery;
    begin
      if OpenDialog.Execute then
      begin
        Query := TAdoQuery.Create(nil);
        Query.Connection := Unit_DataSource.DataModule2.ADOConnection1;
        try
          Query.Close;
          Query.SQL.Clear;
          Query.SQL.Add('Select * from T_BOLBFILE');
          Query.Open;
          Query.Insert;
          Query.FieldByName('File_Name').AsString := EditFilePath.Text;
          TBlobField(Query.FieldByName('BOLB_FILE')).LoadFromFile(OpenDialog.FileName);
          Query.FieldByName('File_Version').AsString := EditOldVersion.Text;
          Query.Post;
          Query.close;
          ShowMessage('Upload Successed!');
        except
          Raise;
          Query.close;
        end;
      end;
      Query.Free;
    end;还有下载根本就报错,系统提示不能建立文件,
    代码如下:
    procedure TForm1.Button2Click(Sender: TObject);
    var
      Query : TAdoQuery;
    begin  Query := TAdoQuery.Create(nil);
      Query.Connection := Unit_DataSource.DataModule2.ADOConnection1;
      try
        Query.Close;
        Query.SQL.Clear;
        Query.SQL.Add('Select * from T_BOLBFILE');
        Query.Open;
        while not Query.Eof do
        begin
          showmessage(Query.FieldValues['File_Name']);
          TBlobField(Query.FieldByName('BOLB_FILE')).SaveToFile(ExtractFilePath(Application.ExeName));
          Query.Next;
        end;    // while
        Query.close;
        ShowMessage('DownLoad Successed!');
      except
        Raise;
        Query.close;
      end;
      Query.Free;
    end;
    请各位高手解答,谢谢
      

  4.   

    在数据库是都显示为0x4D5A50000200000004000F00FFFF0000B80000000000000040001A00000000000000000000000000000000000000000000000000000000000000000000010000BA10000E1FB409CD21B8014CCD219090546869732070726F6772616D206D7573742062652072756E20756E6465722057696E33320D0A243700000000000000是对的你把这句改一下看看
    TBlobField(Query.FieldByName('BOLB_FILE')).SaveToFile(ExtractFilePath(Application.ExeName) + 'aa.dll');