📄 c_component.~pas
字号:
unit c_component;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, DB, ADODB, StdCtrls, Grids, DBGrids, ExtCtrls, shellapi, common,
Menus;
type
TForm1 = class(TForm)
GroupBox1: TGroupBox;
ado_component: TADOQuery;
ado_memo: TADOQuery;
ado_temp: TADOQuery;
ds_ado_component: TDataSource;
ds_ado_memo: TDataSource;
DBGrid1: TDBGrid;
DBGrid2: TDBGrid;
Button1: TButton;
Edit1: TEdit;
ado_memocomponent_know_size: TIntegerField;
ado_memocomponent_know_filename: TWideStringField;
Button2: TButton;
ado_memocomponent_know_id: TAutoIncField;
ado_memocomponent_know_component_id: TIntegerField;
od1: TOpenDialog;
Shape1: TShape;
Button3: TButton;
Button4: TButton;
Button5: TButton;
sd1: TSaveDialog;
gb2: TGroupBox;
Label1: TLabel;
e_name: TEdit;
Label2: TLabel;
c_kind: TComboBox;
Label3: TLabel;
c_child_kind: TComboBox;
Label4: TLabel;
c_encap: TComboBox;
Label5: TLabel;
e_sheet: TEdit;
Label6: TLabel;
e_value: TEdit;
Label7: TLabel;
e_number: TEdit;
Label8: TLabel;
e_price: TEdit;
Button6: TButton;
Button7: TButton;
Button8: TButton;
Button9: TButton;
ado_componentID: TAutoIncField;
ado_componentname: TWideStringField;
ado_componentkind_id: TSmallintField;
ado_componentchild_kind_id: TSmallintField;
ado_componentencap_kind_id: TIntegerField;
ado_componentsheet: TWideStringField;
ado_componentvalue: TWideStringField;
ado_componentmemo_id: TIntegerField;
ado_componentnumber: TIntegerField;
ado_componentprice: TBCDField;
ado_componentencap_name: TWideStringField;
ado_componentencap_memo: TWideStringField;
ado_componentencap_order_id: TIntegerField;
ado_componentkind_name: TWideStringField;
ado_componentkind_order_id: TSmallintField;
ado_componentpara_kind_id: TSmallintField;
ado_componentchild_kind_name: TWideStringField;
ado_componentchild_kind_order_id: TSmallintField;
Button10: TButton;
pop1: TPopupMenu;
sss1: TMenuItem;
Label9: TLabel;
Label10: TLabel;
Label11: TLabel;
Memo1: TMemo;
Button11: TButton;
procedure aa(sender: tobject);
procedure Button1Click(Sender: TObject);
procedure ado_componentAfterScroll(DataSet: TDataSet);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Button4Click(Sender: TObject);
procedure Button5Click(Sender: TObject);
procedure Button7Click(Sender: TObject);
procedure c_kindChange(Sender: TObject);
procedure c_child_kindChange(Sender: TObject);
procedure Button6Click(Sender: TObject);
procedure Button8Click(Sender: TObject);
procedure Button9Click(Sender: TObject);
procedure c_encapChange(Sender: TObject);
procedure Button10Click(Sender: TObject);
procedure DBGrid1TitleClick(Column: TColumn);
procedure FormActivate(Sender: TObject);
procedure ado_componentAfterOpen(DataSet: TDataSet);
procedure Button11Click(Sender: TObject);
procedure ado_memoAfterOpen(DataSet: TDataSet);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
dc_kind, dc_child_kind, dc_encap: tc_select;
search_str: string;
implementation
uses
data, c_setup;
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
with ado_component do
begin
Close;
sql.Strings[2] := format('''%%%s%%''', [edit1.text]);
sql.Strings[3] := '';
open;
first;
end;
end;
procedure TForm1.ado_componentAfterScroll(DataSet: TDataSet);
var
sql_str: string;
begin
if ado_component.RecordCount > 0 then
begin
sql_str := format('select component_know_id,component_know_component_id,component_know_size,component_know_filename from component_know where component_know_component_id=%d order by component_know_filename', [ado_component.fieldbyname('id').asinteger]);
with ado_memo do
begin
close;
sql.clear;
sql.add(sql_str);
open;
first;
end;
end;
end;
procedure TForm1.Button2Click(Sender: TObject);
var
file_mem: TMemoryStream;
sql_str: string;
tempcounti: integer;
begin
if od1.Execute then
begin
for tempcounti := 0 to od1.Files.Count - 1 do
begin
file_mem := TMemoryStream.Create;
file_mem.LoadFromFile(od1.Files.strings[tempcounti]);
file_mem.Position := 0;
sql_str := format('insert into component_know(component_know_component_id,component_know_content,component_know_size,component_know_filename) values(%d,:s1,%d,''%s'')', [ado_component.fieldbyname('id').asinteger, file_mem.size, extractfilename(od1.Files.strings[tempcounti])]);
with ado_temp do
begin
close;
sql.clear;
sql.add(sql_str);
Parameters.ParamByName('s1').LoadFromStream(file_mem, ftblob);
ExecSQL;
ado_componentAfterScroll(ado_component);
ado_memo.Locate('component_know_filename', extractfilename(od1.Files.strings[tempcounti]), [loCaseInsensitive]);
end;
file_mem.Free;
end;
end;
end;
procedure TForm1.Button3Click(Sender: TObject);
var
sql_str: string;
bk: tbookmark;
begin
sql_str := format('delete from component_know where component_know_id=%d', [ado_memo.fieldbyname('component_know_id').asinteger]);
ado_memo.Prior;
bk := ado_memo.GetBookmark;
with ado_temp do
begin
close;
sql.clear;
sql.add(sql_str);
ExecSQL;
ado_componentAfterScroll(ado_component);
if ado_memo.RecordCount > 0 then
begin
ado_memo.GotoBookmark(bk);
end;
ado_memo.FreeBookmark(bk);
end;
end;
procedure TForm1.Button4Click(Sender: TObject);
var
file_mem: TMemoryStream;
sql_str: string;
tempdir: pchar;
execfile: string;
i: integer;
begin
file_mem := TMemoryStream.Create;
sql_str := format('select component_know_content from component_know where component_know_id=%d', [ado_memo.fieldbyname('component_know_id').asinteger]);
with ado_temp do
begin
close;
sql.clear;
sql.add(sql_str);
open;
tblobfield(ado_temp.fieldbyname('component_know_content')).SaveToStream(file_mem);
end;
file_mem.Position := 0;
tempdir := GetMemory(255);
GetTempPath(255, tempdir);
execfile := string(tempdir) + ado_memo.fieldbyname('component_know_filename').asstring;
if FileExists(execfile) then
begin
if DeleteFile(execfile) then
file_mem.SaveToFile(execfile);
end
else
begin
file_mem.SaveToFile(execfile);
end;
FreeMemory(tempdir);
ShellExecute(GetParentHandle, ('open'), pchar(execfile), nil, nil, SW_SHOW);
file_mem.Free;
end;
procedure TForm1.Button5Click(Sender: TObject);
var
file_mem: TMemoryStream;
sql_str: string;
tempdir: pchar;
execfile: string;
i: integer;
begin
sd1.FileName := ado_memo.fieldbyname('component_know_filename').AsString;
if sd1.Execute then
begin
file_mem := TMemoryStream.Create;
sql_str := format('select component_know_content from component_know where component_know_id=%d', [ado_memo.fieldbyname('component_know_id').asinteger]);
with ado_temp do
begin
close;
sql.clear;
sql.add(sql_str);
open;
tblobfield(ado_temp.fieldbyname('component_know_content')).SaveToStream(file_mem);
end;
file_mem.Position := 0;
execfile := sd1.filename;
if FileExists(execfile) then
begin
if MessageDlg('有同名文件,覆盖吗?', mtConfirmation, [mbYes, mbNo], 0) = mryes then
if DeleteFile(execfile) then
file_mem.SaveToFile(execfile);
end
else
begin
file_mem.SaveToFile(execfile);
end;
file_mem.Free;
end;
end;
procedure TForm1.Button7Click(Sender: TObject);
var
sql_str: string;
begin
gb2.Visible := true;
e_name.Tag := 0;
e_name.Clear;
e_sheet.Clear;
e_value.Clear;
e_number.Clear;
e_price.Clear;
initcombobox(c_kind, dc_kind, 'select * from kind order by kind_order_id', 'id', 'kind_name');
selectcombox(c_kind);
sql_str := format('select * from child_kind where para_kind_id=%d order by child_kind_order_id', [dc_kind[c_kind.tag]]);
initcombobox(c_child_kind, dc_child_kind, sql_str, 'id', 'child_kind_name');
initcombobox(c_encap, dc_encap, 'select * from encap order by encap_order_id', 'id', 'encap_name');
end;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -