需要调用oracle中的dbms_lob包吧

解决方案 »

  1.   

    http://expert.csdn.net/Expert/topic/1373/1373219.xml?temp=.5225946
    http://expert.csdn.net/Expert/topic/934/934551.xml?temp=.7429468
    http://expert.csdn.net/Expert/topic/708/708732.xml?temp=.1524927
    http://expert.csdn.net/Expert/topic/637/637661.xml?temp=.4878809
    这都是我的收藏.
    其实你要是搜索一下会有很多类似问题的.
      

  2.   

    在PB中有一个:SELECTBLOB查询语句,我想在DELPHI中也应该有一个类似的东西才对。当然如果太大,就需要调用:DBMS_LOB包的相关功能了。
      

  3.   

    blob资料:
    http://otn.oracle.com/pls/tahiti/tahiti.drilldown?re=&word=blob&book=a85397&preference=CLOB:
    select to_clob(col_name) from table_name;
    blob:
    select dbms_lob.substr(col_name) from table_name;
      

  4.   

    放一个dbimage控件,一个OpenPictureDialog,一个装载按钮;uses
      Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
      ToolWin, ComCtrls, DBCtrls, Buttons, DB, ExtDlgs, DBClient;type
      TFrm_YGXX_TPWH = class(TForm)
        ToolBar1: TToolBar;
        SpeedButton_ZZ: TSpeedButton;
        SpeedButton_BZ: TSpeedButton;
        SpeedButton_TC: TSpeedButton;
        OpenPictureDialog: TOpenPictureDialog;
        DBImage_TP: TDBImage;
        DS_YGTP: TDataSource;
        procedure SpeedButton_ZZClick(Sender: TObject);
        procedure SpeedButton_BZClick(Sender: TObject);
        procedure SpeedButton_TCClick(Sender: TObject);
        procedure DBImage_TPKeyPress(Sender: TObject; var Key: Char);
        procedure FormShow(Sender: TObject);
        procedure FormClose(Sender: TObject; var Action: TCloseAction);
      private
        { Private declarations }
      public
        { Public declarations }
        VU_YGBH: string;
      end;var
      Frm_YGXX_TPWH: TFrm_YGXX_TPWH;implementationuses U_DM_QYJGSJ;{$R *.DFM}procedure TFrm_YGXX_TPWH.SpeedButton_BZClick(Sender: TObject);
    begin
     if not DM_QYJGSJ.CDS_YGTP.IsEmpty then
      BEGIN
        DM_QYJGSJ.CDS_YGXXKL.Close;
        DM_QYJGSJ.CDS_YGXXKL.CommandText:='DELETE FROM T_YGTP WHERE YGID='''+VU_YGBH+'''';
        DM_QYJGSJ.CDS_YGXXKL.Execute;
      END;
      DM_QYJGSJ.CDS_YGTP.Refresh;
        //Frm_wlxxwh.CDS_WLTP.RemoteServer.Connected:=TRUE;
       // Frm_wlxxwh.CDS_WLTP.Delete;
    end;procedure TFrm_YGXX_TPWH.SpeedButton_ZZClick(Sender: TObject);
    var
      f: file of byte;
      VL_size: longint;
    begin
      if OpenPictureDialog.Execute then
      begin
        AssignFile(f, OpenPictureDialog.FileName);
        Reset(f);
        VL_size := FileSize(f);
        CloseFile(f);
    //    if VL_Size > 2097152 then
        if VL_Size > 2048000 then
        begin
          Application.MessageBox('ÎļþÌ«´ó,²»Äܱ£´æ!', 'ÌáʾÐÅÏ¢', mb_OK or mb_ICONINFORMATION);
          Exit;
        end;
        if not (DM_QYJGSJ.CDS_YGTP.State in [dsEdit, dsInsert]) then
          //Frm_wlxxwh.CDS_WLTP.Open;
          DM_QYJGSJ.CDS_YGTP.Edit;
        DBImage_tp.Picture.LoadFromFile(OpenPictureDialog.FileName);
      end;
    end;procedure TFrm_YGXX_TPWH.SpeedButton_TCClick(Sender: TObject);
    begin
      if DM_QYJGSJ.CDS_YGTP.State in [dsEdit, dsInsert] then
      begin
        DM_QYJGSJ.CDS_YGTP.FieldByName('YGID').asstring := VU_YGBH;
        DM_QYJGSJ.CDS_YGTP.Post;
        DM_QYJGSJ.CDS_YGTP.ApplyUpdates(0);
      end;
      Close;
      //Frm_WLXXWH_TPWH.Free;
      //Frm_WLXXWH_TPWH := nil;
    end;procedure TFrm_YGXX_TPWH.DBImage_TPKeyPress(Sender: TObject;
      var Key: Char);
    begin
      //Óû§Ñ¡ÔñÈ·¶¨£¬Ôò±£´æ£¬°´esc·ÅÆúÐÝ´æ
      if (Key = #13) then
      begin
        if DM_QYJGSJ.CDS_YGTP.State in [dsEdit, dsInsert] then
          DM_QYJGSJ.CDS_YGTP.Post;
      end
      else if (Key = #27) then
      begin
        if DM_QYJGSJ.CDS_YGTP.State in [dsEdit, dsInsert] then
          DM_QYJGSJ.CDS_YGTP.Delete;
      end;
    end;
    procedure TFrm_YGXX_TPWH.FormShow(Sender: TObject);
    begin
      DM_QYJGSJ.CDS_YGTP.Close;
      DM_QYJGSJ.CDS_YGTP.Params[0].ASSTRING := VU_YGBH;
      DM_QYJGSJ.CDS_YGTP.Open;
     IF  DM_QYJGSJ.CDS_YGTP.RecordCount>0 THEN
    {  if Frm_wlxxwh.CDS_WLTP.FieldByName('wlbh').asstring <> '' then
        Frm_wlxxwh.CDS_WLTP.Edit
      else
        Frm_wlxxwh.CDS_WLTP.Insert;
      Frm_wlxxwh.CDS_WLTP.FieldByName('wlbh').asstring := VU_WLBH;}
    end;procedure TFrm_YGXX_TPWH.FormClose(Sender: TObject;
      var Action: TCloseAction);
    begin
      if DM_QYJGSJ.CDS_YGTP.State in [dsEdit, dsInsert] then
      begin
        DM_QYJGSJ.CDS_YGTP.FieldByName('YGID').asstring := VU_YGBH;
        DM_QYJGSJ.CDS_YGTP.Post;
        DM_QYJGSJ.CDS_YGTP.ApplyUpdates(-1);
      end;
    end;end.