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;
放一个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.
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
这都是我的收藏.
其实你要是搜索一下会有很多类似问题的.
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;
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.