窗口居中 本人初学Delphi 请问高手如何使窗口居中,及定义全局变量 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 form.position := poMainFormCenter;全局变量public i : Integer; // 公有的private iLen : Integer; //私有的 设置Form的Position属性可以单独建立一个公用单元然后再定一些你需要的变量…… 下面是一个小程序:自己看吧; private databasename: string; procedure DoEnterAsTab(var Msg: TMsg; var Handled: Boolean); //enter代替tab procedure addnewdata;//插入备份记录 { Private declarations } public//全局变量的定义 databasename1, databasename2, databasename3, databasename4, databasename5:string;procedure getdatabasename; //获取数据库名 { Public declarations } end;var backupdata: Tbackupdata;implementationuses U_location, U_backuprecord;{$R *.dfm}procedure Tbackupdata.BitBtn2Click(Sender: TObject);begin self.Close;end;procedure Tbackupdata.DoEnterAsTab(var Msg: TMsg; var Handled: Boolean); //enter代替tabbegin if Msg.Message = WM_KEYDOWN then begin if (Msg.wParam = VK_RETURN) then Keybd_event(VK_TAB, 0, 0, 0); end; //ifend;procedure Tbackupdata.FormCreate(Sender: TObject);var serverid, databaseusername, databasepassword, servername: string;begin self.ValueListEditor1.Visible := false; panel3.Visible := false; self.ValueListEditor1.Strings.LoadFromFile((extractfilepath(application.ExeName) + 'setup.txt')); serverid := trim(self.ValueListEditor1.Values['serverid']); //服务器ID databasepassword := trim(self.ValueListEditor1.Values['databasepassword']); //数据库密码 databaseusername := trim(self.ValueListEditor1.Values['databaseusername']); //数据库用户名 servername := trim(self.ValueListEditor1.Values['servername']); ADOConnection1.Connected := false; ADOConnection2.Connected := false; ADOConnection1.ConnectionString := 'Provider=SQLOLEDB.1;Password=' + trim(databasepassword) + ';Persist Security Info=True;User ID=' + trim(databaseusername) + ';Data Source=' + trim(serverid); ADOConnection2.ConnectionString:='Provider=Microsoft.Jet.OLEDB.4.0;Data Source='+(extractfilepath(application.ExeName) + '备份记录.mdb')+';Persist Security Info=False';self.dxPickEdit2.Items.Clear; if trim(self.ValueListEditor1.Values['databasenamez1']) <> '' then //添加数据库名 self.dxPickEdit2.Items.Add(trim(self.ValueListEditor1.Values['databasenamez1'])); if trim(self.ValueListEditor1.Values['databasenamez2']) <> '' then //添加数据库名 self.dxPickEdit2.Items.Add(trim(self.ValueListEditor1.Values['databasenamez2'])); if trim(self.ValueListEditor1.Values['databasenamez3']) <> '' then //添加数据库名 self.dxPickEdit2.Items.Add(trim(self.ValueListEditor1.Values['databasenamez3'])); if trim(self.ValueListEditor1.Values['databasenamez4']) <> '' then //添加数据库名 self.dxPickEdit2.Items.Add(trim(self.ValueListEditor1.Values['databasenamez4'])); if trim(self.ValueListEditor1.Values['databasenamez5']) <> '' then //添加数据库名 self.dxPickEdit2.Items.Add(trim(self.ValueListEditor1.Values['databasenamez5'])); self.dxPickEdit1.Items.Add(trim(self.ValueListEditor1.Values['servername'])); self.dxPickEdit1.ItemIndex := 0; databasename1 := trim(self.ValueListEditor1.Values['databasename1']); //数据库名 databasename2 := trim(self.ValueListEditor1.Values['databasename2']); //数据库名 databasename3 := trim(self.ValueListEditor1.Values['databasename3']); //数据库名 databasename4 := trim(self.ValueListEditor1.Values['databasename4']); //数据库名 databasename5 := trim(self.ValueListEditor1.Values['databasename5']); //数据库名end;procedure Tbackupdata.dxEdit1KeyPress(Sender: TObject; var Key: Char);begin Application.OnMessage := DoEnterAsTab;end; procedure Tbackupdata.dxButtonEdit1ButtonClick(Sender: TObject; AbsoluteIndex: Integer);begin if location = nil then location := tlocation.Create(self); location.ShowModal;end;procedure Tbackupdata.dxPickEdit2Change(Sender: TObject);begin self.dxButtonEdit1.Text := trim(self.dxPickEdit2.Text) + datetostr(date())+'-'+inttostr(hourof(now))+'-'+inttostr(minuteof(now)) + '.bak'; location.dxEdit1.Text := trim(backupdata.dxPickEdit2.Text) + datetostr(date())+'-'+inttostr(hourof(now))+'-'+inttostr(minuteof(now)) + '.bak'; self.Label7.Caption := trim(valuelisteditor1.Values['location']) + '\' + trim(self.dxPickEdit2.Text) + datetostr(date())+'-'+inttostr(hourof(now))+'-'+inttostr(minuteof(now))+ '.bak';end;procedure Tbackupdata.BitBtn1Click(Sender: TObject);var str: string; flag: integer; NetSource: TNetResource; F: TShFileOpStruct; ErrInfo: longint; m:integer; driver:pchar; drivername,str1,str2:string; i,lenth:integer;begin lenth:=length(trim(label7.Caption)); str1:='';str2:=''; for i:=1 to lenth do begin str1:=midstr(trim(label7.Caption),i,1); str2:=str2+str1; if trim(str1)='\' then break; end; driver:=pchar(str2);//pchar(label7.Caption); m:= GetDriveType(driver); {case x of DRIVE_REMOVABLE: drivername := '可移动驱动器'; DRIVE_FIXED: drivername := '固定驱动器'; 4: drivername := '网络驱动器'; 5: drivername := 'CD-ROM驱动器'; 6: drivername := '虚拟驱动器'; Else drivername:= '该驱动器无效'; end; } flag := 0; //panel3.Caption:='正在备份数据,请稍候......'; self.getdatabasename; //获取数据库名 if ((trim(dxedit1.Text) = trim(ValueListEditor1.Values['username1'])) and (trim(dxedit2.Text) = trim(valuelisteditor1.Values['password1']))) or ((trim(dxedit1.Text) = trim(ValueListEditor1.Values['username2'])) and (trim(dxedit2.Text) = trim(valuelisteditor1.Values['password2']))) or ((trim(dxedit1.Text) = trim(ValueListEditor1.Values['username3'])) and (trim(dxedit2.Text) = trim(valuelisteditor1.Values['password3']))) then begin //判断密码的正确 str := 'BACKUP DATABASE ' + databasename + ' TO disk=' + '''' + trim(valuelisteditor1.Values['serverlocation1']) + '\' + trim(self.dxButtonEdit1.Text) + '''' + ' WITH init'; //备份 with adoquery1 do begin //备份数据库 // panel3.Caption:='正在备份数据,请稍候......'; close; sql.Clear; sql.Add(str); prepared; try panel3.Visible := true; //panel3.Height:=40; adoquery1.ExecSQL; flag := 1; // panel3.Visible := false; except panel3.Visible := false; application.MessageBox('数据库备份失败!', '提示', mb_ok); end; //try end; //with if flag = 1 then begin with NetSource do begin dwType := RESOURCETYPE_ANY; lpLocalName := 'x:'; // 将远程资源映射到此驱动器 lpRemoteName := pchar(trim(self.ValueListEditor1.Values['serverlocation'])); // 远程网络资源 lpProvider := ''; // 必须赋值,如为空则使用lpRemoteName的值。 end; WnetAddConnection2(NetSource, pchar(trim(valuelisteditor1.Values['sharepassword'])), pchar(trim(valuelisteditor1.Values['shareusername'])), //用户名为Guest,口令为Password CONNECT_UPDATE_PROFILE); panel3.Visible := false; if m=3 then begin //本地磁盘 F.wnd := Handle; F.wFunc := FO_COPY; {操作方式} F.pFrom := PCHAR(trim(self.ValueListEditor1.Values['serverlocation']) + '\' + trim(self.dxButtonEdit1.Text)+#0#0); F.pTo := PCHAR(trim(self.ValueListEditor1.Values['location'])+'\'+ trim(self.dxButtonEdit1.Text)+#0#0); F.fFlags := FOF_NOCONFIRMATION; {操作选项} if ShFileOperation(F) <> 0 then application.MessageBox('文件拷贝失败!', '提示', mb_ok) else begin //插入备份记录 self.addnewdata; end; end// if m=3 then begin {else if m=4 then begin //网络驱动器 if application.MessageBox('确实要把文件复制到网络磁盘上吗?','提示',mb_okcancel)=1 then begin F.wnd := Handle; F.wFunc := FO_COPY; {操作方式} { F.pFrom := PCHAR(trim(self.ValueListEditor1.Values['serverlocation']) + '\' + trim(self.dxButtonEdit1.Text)+#0#0); F.pTo := PCHAR(trim(self.ValueListEditor1.Values['location'])+'\'+ trim(self.dxButtonEdit1.Text)+#0#0); F.fFlags := FOF_NOCONFIRMATION; {操作选项} {if ShFileOperation(F) <> 0 then application.MessageBox('文件拷贝失败!', '提示', mb_ok) else begin //插入备份记录 self.addnewdata; end; end; end//else if m=4 then begin //网络驱动器 } else application.MessageBox(pchar(' 当前所指路径不存在!'+#13+#10+'请检查移动硬盘是否已插上或插好!'),'提示'); WNetCancelConnection2('x:', CONNECT_UPDATE_PROFILE, True); end; //if flag=1 then begin end else begin application.MessageBox('用户名或密码不正确,请重新输入!', '提示', mb_ok); end;end;procedure Tbackupdata.getdatabasename; //获取数据库名begin if trim(dxpickedit2.Text) = trim(valuelisteditor1.Values['databasenamez1']) then databasename := trim(valuelisteditor1.Values['databasename1']); if trim(dxpickedit2.Text) = trim(valuelisteditor1.Values['databasenamez2']) then databasename := trim(valuelisteditor1.Values['databasename2']); if trim(dxpickedit2.Text) = trim(valuelisteditor1.Values['databasenamez3']) then databasename := trim(valuelisteditor1.Values['databasename3']); if trim(dxpickedit2.Text) = trim(valuelisteditor1.Values['databasenamez4']) then databasename := trim(valuelisteditor1.Values['databasename4']); if trim(dxpickedit2.Text) = trim(valuelisteditor1.Values['databasenamez5']) then databasename := trim(valuelisteditor1.Values['databasename5']);end;procedure Tbackupdata.N1Click(Sender: TObject);begin if frm_backuprecord=nil then frm_backuprecord:=tfrm_backuprecord.Create(self); frm_backuprecord.Show; if trim(self.ValueListEditor1.Values['databasenamez1']) <> '' then //添加数据库名 frm_backuprecord.dxPickEdit1.Items.Add(trim(self.ValueListEditor1.Values['databasenamez1'])); if trim(self.ValueListEditor1.Values['databasenamez2']) <> '' then //添加数据库名 frm_backuprecord.dxPickEdit1.Items.Add(trim(self.ValueListEditor1.Values['databasenamez2'])); if trim(self.ValueListEditor1.Values['databasenamez3']) <> '' then //添加数据库名 frm_backuprecord.dxPickEdit1.Items.Add(trim(self.ValueListEditor1.Values['databasenamez3'])); if trim(self.ValueListEditor1.Values['databasenamez4']) <> '' then //添加数据库名 frm_backuprecord.dxPickEdit1.Items.Add(trim(self.ValueListEditor1.Values['databasenamez4'])); if trim(self.ValueListEditor1.Values['databasenamez5']) <> '' then //添加数据库名 frm_backuprecord.dxPickEdit1.Items.Add(trim(self.ValueListEditor1.Values['databasenamez5']));end;procedure Tbackupdata.addnewdata; //插入备份记录begin with add_query do begin close; sql.Clear; sql.Add('insert into 数据库备份记录(备份人,数据库名,备份时间,备份路径)values(:a,:b,:c,:d)'); parameters.ParamByName('a').Value:=trim(backupdata.dxedit1.Text); parameters.ParamByName('b').Value:=trim(backupdata.dxpickedit2.Text); parameters.ParamByName('c').Value:=now(); parameters.ParamByName('d').Value:=trim(backupdata.label7.Caption); //parameters.ParamByName('e').Value:=trim(drivername); prepared; execsql; end;end;end. 设置position属性poScreenCenterpublic i : Integer; // 公有的private iLen : Integer; //私有的 form.position := poScreenCenter; fastreport分组脚本问题 高分紧急求助,请各位提供IE方面开发的帮助和资料!!!! 如何在DBGRID里设置一列,该列数据由另外两列计算的来 如何由文件路径得到文件目录: 请教 DBGridEH中下拉框的问题 熟悉C 的请进来,我郁闷死了,看似简单的语句就怎么都调不对! 图片存入数据库的问题 请问怎样用SQL语句实现模糊查询?我用的是ADOQuey1. delphi6 中和网络有关的几个控件不能加载?? Delphi、VB的ADO速度测试 ftp的问题 请问如何再tdbgrid控件里实现内嵌combobox
public
i : Integer; // 公有的
private
iLen : Integer; //私有的
private
databasename: string;
procedure DoEnterAsTab(var Msg: TMsg; var Handled: Boolean); //enter代替tab
procedure addnewdata;//插入备份记录
{ Private declarations }
public//全局变量的定义
databasename1, databasename2, databasename3, databasename4, databasename5:string;
procedure getdatabasename; //获取数据库名
{ Public declarations }
end;var
backupdata: Tbackupdata;implementationuses U_location, U_backuprecord;{$R *.dfm}procedure Tbackupdata.BitBtn2Click(Sender: TObject);
begin
self.Close;
end;procedure Tbackupdata.DoEnterAsTab(var Msg: TMsg; var Handled: Boolean); //enter代替tab
begin
if Msg.Message = WM_KEYDOWN then
begin
if (Msg.wParam = VK_RETURN) then
Keybd_event(VK_TAB, 0, 0, 0);
end; //if
end;procedure Tbackupdata.FormCreate(Sender: TObject);
var
serverid, databaseusername, databasepassword, servername: string;
begin
self.ValueListEditor1.Visible := false;
panel3.Visible := false;
self.ValueListEditor1.Strings.LoadFromFile((extractfilepath(application.ExeName) + 'setup.txt'));
serverid := trim(self.ValueListEditor1.Values['serverid']); //服务器ID
databasepassword := trim(self.ValueListEditor1.Values['databasepassword']); //数据库密码
databaseusername := trim(self.ValueListEditor1.Values['databaseusername']); //数据库用户名
servername := trim(self.ValueListEditor1.Values['servername']);
ADOConnection1.Connected := false;
ADOConnection2.Connected := false;
ADOConnection1.ConnectionString := 'Provider=SQLOLEDB.1;Password=' + trim(databasepassword) + ';Persist Security Info=True;User ID=' + trim(databaseusername) + ';Data Source=' + trim(serverid);
ADOConnection2.ConnectionString:='Provider=Microsoft.Jet.OLEDB.4.0;Data Source='+(extractfilepath(application.ExeName) + '备份记录.mdb')+';Persist Security Info=False';
self.dxPickEdit2.Items.Clear;
if trim(self.ValueListEditor1.Values['databasenamez1']) <> '' then //添加数据库名
self.dxPickEdit2.Items.Add(trim(self.ValueListEditor1.Values['databasenamez1']));
if trim(self.ValueListEditor1.Values['databasenamez2']) <> '' then //添加数据库名
self.dxPickEdit2.Items.Add(trim(self.ValueListEditor1.Values['databasenamez2']));
if trim(self.ValueListEditor1.Values['databasenamez3']) <> '' then //添加数据库名
self.dxPickEdit2.Items.Add(trim(self.ValueListEditor1.Values['databasenamez3']));
if trim(self.ValueListEditor1.Values['databasenamez4']) <> '' then //添加数据库名
self.dxPickEdit2.Items.Add(trim(self.ValueListEditor1.Values['databasenamez4']));
if trim(self.ValueListEditor1.Values['databasenamez5']) <> '' then //添加数据库名
self.dxPickEdit2.Items.Add(trim(self.ValueListEditor1.Values['databasenamez5']));
self.dxPickEdit1.Items.Add(trim(self.ValueListEditor1.Values['servername']));
self.dxPickEdit1.ItemIndex := 0;
databasename1 := trim(self.ValueListEditor1.Values['databasename1']); //数据库名
databasename2 := trim(self.ValueListEditor1.Values['databasename2']); //数据库名
databasename3 := trim(self.ValueListEditor1.Values['databasename3']); //数据库名
databasename4 := trim(self.ValueListEditor1.Values['databasename4']); //数据库名
databasename5 := trim(self.ValueListEditor1.Values['databasename5']); //数据库名
end;procedure Tbackupdata.dxEdit1KeyPress(Sender: TObject; var Key: Char);
begin
Application.OnMessage := DoEnterAsTab;
end;
AbsoluteIndex: Integer);
begin
if location = nil then
location := tlocation.Create(self);
location.ShowModal;
end;procedure Tbackupdata.dxPickEdit2Change(Sender: TObject);
begin
self.dxButtonEdit1.Text := trim(self.dxPickEdit2.Text) + datetostr(date())+'-'+inttostr(hourof(now))+'-'+inttostr(minuteof(now)) + '.bak';
location.dxEdit1.Text := trim(backupdata.dxPickEdit2.Text) + datetostr(date())+'-'+inttostr(hourof(now))+'-'+inttostr(minuteof(now)) + '.bak';
self.Label7.Caption := trim(valuelisteditor1.Values['location']) + '\' + trim(self.dxPickEdit2.Text) + datetostr(date())+'-'+inttostr(hourof(now))+'-'+inttostr(minuteof(now))+ '.bak';
end;
procedure Tbackupdata.BitBtn1Click(Sender: TObject);
var str: string;
flag: integer;
NetSource: TNetResource;
F: TShFileOpStruct;
ErrInfo: longint;
m:integer;
driver:pchar;
drivername,str1,str2:string;
i,lenth:integer;
begin
lenth:=length(trim(label7.Caption));
str1:='';str2:='';
for i:=1 to lenth do begin
str1:=midstr(trim(label7.Caption),i,1);
str2:=str2+str1;
if trim(str1)='\' then
break;
end;
driver:=pchar(str2);//pchar(label7.Caption);
m:= GetDriveType(driver);
{case x of
DRIVE_REMOVABLE: drivername := '可移动驱动器';
DRIVE_FIXED: drivername := '固定驱动器';
4: drivername := '网络驱动器';
5: drivername := 'CD-ROM驱动器';
6: drivername := '虚拟驱动器';
Else drivername:= '该驱动器无效';
end; }
flag := 0;
//panel3.Caption:='正在备份数据,请稍候......';
self.getdatabasename; //获取数据库名
if ((trim(dxedit1.Text) = trim(ValueListEditor1.Values['username1'])) and (trim(dxedit2.Text) = trim(valuelisteditor1.Values['password1']))) or
((trim(dxedit1.Text) = trim(ValueListEditor1.Values['username2'])) and (trim(dxedit2.Text) = trim(valuelisteditor1.Values['password2']))) or
((trim(dxedit1.Text) = trim(ValueListEditor1.Values['username3'])) and (trim(dxedit2.Text) = trim(valuelisteditor1.Values['password3']))) then begin //判断密码的正确
str := 'BACKUP DATABASE ' + databasename + ' TO disk=' + '''' + trim(valuelisteditor1.Values['serverlocation1']) + '\' + trim(self.dxButtonEdit1.Text) + '''' + ' WITH init'; //备份
with adoquery1 do begin //备份数据库
// panel3.Caption:='正在备份数据,请稍候......';
close; sql.Clear;
sql.Add(str);
prepared;
try
panel3.Visible := true;
//panel3.Height:=40;
adoquery1.ExecSQL;
flag := 1;
// panel3.Visible := false;
except
panel3.Visible := false;
application.MessageBox('数据库备份失败!', '提示', mb_ok);
end; //try
end; //with
if flag = 1 then begin
with NetSource do begin
dwType := RESOURCETYPE_ANY;
lpLocalName := 'x:';
// 将远程资源映射到此驱动器
lpRemoteName := pchar(trim(self.ValueListEditor1.Values['serverlocation']));
// 远程网络资源
lpProvider := ''; // 必须赋值,如为空则使用lpRemoteName的值。
end;
WnetAddConnection2(NetSource, pchar(trim(valuelisteditor1.Values['sharepassword'])), pchar(trim(valuelisteditor1.Values['shareusername'])),
//用户名为Guest,口令为Password
CONNECT_UPDATE_PROFILE);
panel3.Visible := false;
if m=3 then begin //本地磁盘
F.wnd := Handle;
F.wFunc := FO_COPY; {操作方式}
F.pFrom := PCHAR(trim(self.ValueListEditor1.Values['serverlocation']) + '\' + trim(self.dxButtonEdit1.Text)+#0#0);
F.pTo := PCHAR(trim(self.ValueListEditor1.Values['location'])+'\'+ trim(self.dxButtonEdit1.Text)+#0#0);
F.fFlags := FOF_NOCONFIRMATION; {操作选项}
if ShFileOperation(F) <> 0 then
application.MessageBox('文件拷贝失败!', '提示', mb_ok)
else begin //插入备份记录
self.addnewdata;
end;
end// if m=3 then begin
{else if m=4 then begin //网络驱动器
if application.MessageBox('确实要把文件复制到网络磁盘上吗?','提示',mb_okcancel)=1 then begin
F.wnd := Handle;
F.wFunc := FO_COPY; {操作方式}
{ F.pFrom := PCHAR(trim(self.ValueListEditor1.Values['serverlocation']) + '\' + trim(self.dxButtonEdit1.Text)+#0#0);
F.pTo := PCHAR(trim(self.ValueListEditor1.Values['location'])+'\'+ trim(self.dxButtonEdit1.Text)+#0#0);
F.fFlags := FOF_NOCONFIRMATION; {操作选项}
{if ShFileOperation(F) <> 0 then
application.MessageBox('文件拷贝失败!', '提示', mb_ok)
else begin //插入备份记录
self.addnewdata;
end;
end;
end//else if m=4 then begin //网络驱动器 }
else
application.MessageBox(pchar(' 当前所指路径不存在!'+#13+#10+'请检查移动硬盘是否已插上或插好!'),'提示');
WNetCancelConnection2('x:', CONNECT_UPDATE_PROFILE, True);
end; //if flag=1 then begin
end
else begin
application.MessageBox('用户名或密码不正确,请重新输入!', '提示', mb_ok);
end;
end;procedure Tbackupdata.getdatabasename; //获取数据库名
begin
if trim(dxpickedit2.Text) = trim(valuelisteditor1.Values['databasenamez1']) then
databasename := trim(valuelisteditor1.Values['databasename1']);
if trim(dxpickedit2.Text) = trim(valuelisteditor1.Values['databasenamez2']) then
databasename := trim(valuelisteditor1.Values['databasename2']);
if trim(dxpickedit2.Text) = trim(valuelisteditor1.Values['databasenamez3']) then
databasename := trim(valuelisteditor1.Values['databasename3']);
if trim(dxpickedit2.Text) = trim(valuelisteditor1.Values['databasenamez4']) then
databasename := trim(valuelisteditor1.Values['databasename4']);
if trim(dxpickedit2.Text) = trim(valuelisteditor1.Values['databasenamez5']) then
databasename := trim(valuelisteditor1.Values['databasename5']);
end;procedure Tbackupdata.N1Click(Sender: TObject);
begin
if frm_backuprecord=nil then
frm_backuprecord:=tfrm_backuprecord.Create(self);
frm_backuprecord.Show;
if trim(self.ValueListEditor1.Values['databasenamez1']) <> '' then //添加数据库名
frm_backuprecord.dxPickEdit1.Items.Add(trim(self.ValueListEditor1.Values['databasenamez1']));
if trim(self.ValueListEditor1.Values['databasenamez2']) <> '' then //添加数据库名
frm_backuprecord.dxPickEdit1.Items.Add(trim(self.ValueListEditor1.Values['databasenamez2']));
if trim(self.ValueListEditor1.Values['databasenamez3']) <> '' then //添加数据库名
frm_backuprecord.dxPickEdit1.Items.Add(trim(self.ValueListEditor1.Values['databasenamez3']));
if trim(self.ValueListEditor1.Values['databasenamez4']) <> '' then //添加数据库名
frm_backuprecord.dxPickEdit1.Items.Add(trim(self.ValueListEditor1.Values['databasenamez4']));
if trim(self.ValueListEditor1.Values['databasenamez5']) <> '' then //添加数据库名
frm_backuprecord.dxPickEdit1.Items.Add(trim(self.ValueListEditor1.Values['databasenamez5']));
end;procedure Tbackupdata.addnewdata; //插入备份记录
begin
with add_query do begin
close; sql.Clear;
sql.Add('insert into 数据库备份记录(备份人,数据库名,备份时间,备份路径)values(:a,:b,:c,:d)');
parameters.ParamByName('a').Value:=trim(backupdata.dxedit1.Text);
parameters.ParamByName('b').Value:=trim(backupdata.dxpickedit2.Text);
parameters.ParamByName('c').Value:=now();
parameters.ParamByName('d').Value:=trim(backupdata.label7.Caption);
//parameters.ParamByName('e').Value:=trim(drivername);
prepared;
execsql;
end;
end;end.
public
i : Integer; // 公有的
private
iLen : Integer; //私有的