• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

delphi dbgrid 批量保存

原作者: [db:作者] 来自: [db:来源] 收藏 邀请
unit   uzcdbadd;
interface
uses
   Windows,   Messages,   SysUtils,   Variants,   Classes,   Graphics,   Controls,   Forms,  Dialogs,   Menus,   DB,   StdCtrls,   Buttons,   GridsEh,   DBGridEh,   ComCtrls,   ExtCtrls;
type
   TfrmzcdbAdd   =   class(TForm)
       lbl1:   TLabel;
       pnl1:   TPanel;
       lbl2:   TLabel;
       dtp1:   TDateTimePicker;
       dbgrdh1:   TDBGridEh;
       btnOK:   TBitBtn;
       btnclose:   TBitBtn;
       ds1:   TDataSource;
       pm1:   TPopupMenu;
       mniadd:   TMenuItem;
       mniN1:   TMenuItem;
       procedure   btncloseClick(Sender:   TObject);
       procedure   FormCreate(Sender:   TObject);
       procedure   btnOKClick(Sender:   TObject);
       procedure   dbgrdh1EditButtonClick(Sender:   TObject);
       procedure   dbgrdh1KeyPress(Sender:   TObject;   var   Key:   Char);
       procedure   mniaddClick(Sender:   TObject);
       procedure   mniN1Click(Sender:   TObject);
       procedure   FormClose(Sender:   TObject;   var   Action:   TCloseAction);
   private
       {   Private   declarations   }
   public
       {   Public   declarations   }
   end;
var
   frmzcdbAdd:   TfrmzcdbAdd;
   Edittag:Integer;
implementation
uses   datamoule,   uselectzc,   frmMain;
{$R   *.dfm}
 
procedure   TfrmzcdbAdd.btncloseClick(Sender:   TObject); //关闭时事务回滚
begin
   dm.qryzcdbadd.Close;
   DM.congdzc.RollbackTrans;
   close;
end;
 
procedure   TfrmzcdbAdd.FormCreate(Sender:   TObject); //窗口生成时
begin
   if   DM.qryzcdbadd   .Active   then   dm.qryzcdbadd.Close;
   if   DM.congdzc.InTransaction   then   dm.congdzc.RollbackTrans;
   dm.qryzcdbadd.LockType   :=     ltBatchOptimistic;{批量乐观锁定}
   DM.congdzc.BeginTrans;   {开启事务}
   case   Edittag   of
   0:
       begin
           dm.qryzcdbadd.Open;
           dm.qryzcdbadd.Append;
           dm.qryzcdbadd.FieldByName( '调拨日期 ').AsDateTime   :=Now;
           dm.qryzcdbadd.FieldByName( '登记人员 ').AsString   :=   GuserName;
       end;
     1:
         begin
             dm.qryzcdbadd.SQL.Clear;
             dm.qryzcdbadd.SQL.Add( 'select   *   from   [调拨]   where   ID= '+inttostr(dm.qryzcdb.fieldbyname( 'ID ').asinteger));
             DM.qryzcdbadd.open;
             DM.qryzcdbadd.First;
             DM.qryzcdbadd.Edit;
 
         end;
   end;
end;
 
 
procedure   TfrmzcdbAdd.btnOKClick(Sender:   TObject); //单击保存
begin
     dm.qryzcdbadd.UpdateBatch();       {批量保存}
     dm.congdzc.CommitTrans;                   {提交事务}
     close;
end;
 
 
procedure   TfrmzcdbAdd.dbgrdh1EditButtonClick(Sender: TObject);
begin
   if   dbgrdh1.Col=1   then
   begin
       frmSelectzc:= TfrmSelectzc.Create(nil);
       frmSelectzc.Tag:=2;
       frmSelectzc.Show;
   end;
end;
 
 
procedure   TfrmzcdbAdd.dbgrdh1KeyPress(Sender:   TObject;   var   Key:   Char);
begin
 if   key=#13   then{   判断是按执行键}
       if     dbgrdh1.Col+1 <(dbgrdh1.Columns.Count)   then
               dbgrdh1.Col:=dbgrdh1.col+1{   移动到下一字段}
       else
               dbgrdh1.Col:=1;
end;
 
procedure   TfrmzcdbAdd.mniaddClick(Sender:   TObject); //添加按钮
begin
   DM.qryzcdbadd.Append;
   dm.qryzcdbadd.FieldByName( '调拨日期 ').AsDateTime   :=Now;
   dm.qryzcdbadd.FieldByName( '登记人员 ').AsString   :=   GuserName;
end;
 
 
procedure   TfrmzcdbAdd.mniN1Click(Sender:   TObject); //删除
begin
   DM.qryzcdbadd.Delete;
end;
 
procedure   TfrmzcdbAdd.FormClose(Sender:   TObject;   var   Action:   TCloseAction);
begin
   DM.qryzcdb.Refresh;
   Release;
end;
 
end.

 


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
matlab中如何用rand产生相同的随机数 - swrong发布时间:2022-07-18
下一篇:
Matlab 随机数字发布时间:2022-07-18
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap