📄 unit1.pas
字号:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
Db, ADODB, StdCtrls, Grids, DBGrids, ExtCtrls, DBCtrls, ComCtrls;
type
TForm1 = class(TForm)
ADOConnection1: TADOConnection;
ADOTable1: TADOTable;
DBGrid1: TDBGrid;
DataSource1: TDataSource;
SaveDialog1: TSaveDialog;
Panel1: TPanel;
Button1: TButton;
DBNavigator1: TDBNavigator;
StatusBar1: TStatusBar;
Button2: TButton;
TableNameComboBox: TComboBox;
Button3: TButton;
OpenDialog: TOpenDialog;
procedure Button1Click(Sender: TObject);
procedure DBGrid1CellClick(Column: TColumn);
procedure ADOConnection1AfterConnect(Sender: TObject);
procedure TableNameComboBoxChange(Sender: TObject);
procedure ADOConnection1BeforeDisconnect(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure FormDestroy(Sender: TObject);
procedure Button3Click(Sender: TObject);
private
{ Private declarations }
FColumn: TColumn;
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
procedure TForm1.Button1Click(Sender: TObject);
var
F: TFileStream;
Stream: TStream;
begin
if SaveDialog1.Execute and (FColumn<>nil)and(FColumn.Field <> nil)and(FColumn.Field.IsBlob) then
begin
with ADOTable1 do
begin
Stream := CreateBlobStream(FColumn.Field, bmRead);
try
F := TFileStream.Create(SaveDialog1.FileName, fmCreate);
try
F.CopyFrom(Stream, Stream.Size);
finally
F.Free;
end;
finally
Stream.Free;
end;
end;
end;
end;
procedure TForm1.DBGrid1CellClick(Column: TColumn);
begin
FColumn := Column;
end;
procedure TForm1.ADOConnection1AfterConnect(Sender: TObject);
begin
(Sender as TADOConnection).GetTableNames(TableNameComboBox.Items);
end;
procedure TForm1.TableNameComboBoxChange(Sender: TObject);
begin
ADOTable1.DisableControls;
try
ADOTable1.Active := False;
ADOTable1.TableName := (Sender as TComboBox).Text;
ADOTable1.Active := True;
finally
ADOTable1.EnableControls;
end;
end;
procedure TForm1.ADOConnection1BeforeDisconnect(Sender: TObject);
begin
if TableNameComboBox<> nil then
TableNameComboBox.Items.Clear;
end;
procedure TForm1.Button2Click(Sender: TObject);
var
S: string;
begin
S := ADODB.PromptDataSource(Handle, ADOConnection1.ConnectionString);
if S <> ADOConnection1.ConnectionString then
begin
ADOConnection1.Connected := False;
ADOConnection1.ConnectionString := S;
ADOConnection1.Connected := True;
end;
end;
procedure TForm1.FormDestroy(Sender: TObject);
begin
TableNameComboBox.Free;
TableNameComboBox := nil;
end;
procedure TForm1.Button3Click(Sender: TObject);
var
F: TFileStream;
Stream: TStream;
begin
if (FColumn<>nil)and(FColumn.Field <> nil)and(FColumn.Field.IsBlob) then
if OpenDialog.Execute then
begin
with ADOTable1 do
begin
Edit;
F := TFileStream.Create(OpenDialog.FileName, fmOpenRead);
try
Stream := CreateBlobStream(FColumn.Field, bmRead);
try
Stream.Size := 0;
Stream.CopyFrom(F, 0)
finally
Stream.Free;
end;
finally
F.Free;
end;
Post;
end;
end;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -