复制新增

实现方法步骤:

1,定义一个记录结构record:TXuYaoZuoDeShiDataSheetRecord

     定义一个增加数据的方法类:TAddDataApi;

unit UAddDataApi;

interface
uses Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.ComCtrls, Data.DB, Data.Win.ADODB,
  Vcl.ExtCtrls, Vcl.DBCtrls, Vcl.Grids, Vcl.DBGrids, Clipbrd, Vcl.Menus,
  Vcl.StdCtrls;
/// <summary>
/// 定义需要做的事的结构
/// </summary>
type
TXuYaoZuoDeShiDataSheetRecord = record
选中:Boolean;
类别:string[20];
标题:string[255];
优先级:string[25];
状态:string[25];
已完成百分比:real;
说明:string[255];
开始日期:TDateTime;
截止日期:TDateTime;
//附件:TMemo;
end;

/// <summary>
/// 定义增加数据的一些方法
///
type TAddDataApi = class
  public
  class procedure insert(var ARecord:TXuYaoZuoDeShiDataSheetRecord);
end;

implementation

uses FDataPool, 日常管理助手;
class procedure TAddDataApi.insert(var ARecord: TXuYaoZuoDeShiDataSheetRecord);
var
MyAdq:TADOQuery;
begin
MyAdq:=TADOQuery.Create(nil);
try
with MyAdq do
begin
Connection:=frmDataPool.ADOConnection1;
SQL.Text := 'INSERT INTO 需要做的事 (选中,类别,标题,优先级,状态,已完成百分比,说明,开始日期,截止日期) VALUES ('+ARecord.选中.ToString.QuotedString+','+QuotedStr(ARecord.类别)+','+
                      QuotedStr(ARecord.标题)+','+QuotedStr(ARecord.优先级)+','+QuotedStr(ARecord.状态)+','+floattostr(ARecord.已完成百分比).QuotedString+','+QuotedStr(ARecord.说明)+','+
                      FormatDateTime('yyyy-MM-dd',ARecord.开始日期).QuotedString+','+formatdatetime('yyyy-MM-dd',ARecord.截止日期).QuotedString+')';
ExecSQL;
end;
finally
MyAdq.Free;
end;
end;
end.

 

3,单击事件中添加实现代码:(注意添加引用的结构类单元名和添加数据方法类的单元名UAddDataApi)

 

procedure TForm3.N32Click(Sender: TObject);
var
AXuYao:TXuYaoZuoDeShiDataSheetRecord;
AAddData:TAddDataApi;
begin
AAddData:=TAddDataApi.Create;
try
//提取当前记录数据
with AXuYao do
begin
选中:=frmDataPool.qry需要做的事.FieldByName('选中').value;
类别:=frmDataPool.qry需要做的事.FieldByName('类别').value;
标题:=frmDataPool.qry需要做的事.FieldByName('标题').value;
优先级:=frmDataPool.qry需要做的事.FieldByName('优先级').value;
状态:=frmDataPool.qry需要做的事.FieldByName('状态').value;
已完成百分比:=frmDataPool.qry需要做的事.FieldByName('已完成百分比').value;
说明:=frmDataPool.qry需要做的事.FieldByName('说明').value;
开始日期:=frmDataPool.qry需要做的事.FieldByName('开始日期').value;
截止日期:=frmDataPool.qry需要做的事.FieldByName('截止日期').value;
//附件:=frmDataPool.qry需要做的事.FieldByName('截止日期').;
end;
//写入数据库
AAddData.insert(AXuYao);
//防止程序假死
Application.ProcessMessages;
//刷新数据
frmDataPool.qry需要做的事.Requery;
finally
AAddData.Free;
end;
end;

 

posted @ 2017-06-23 16:25  delphi学习交流吧  阅读(298)  评论(0编辑  收藏  举报