关于内存控件TdxMemData的编程设计思路

TdxMemData控件可以把DataSet数据库保存在内存中,并显示在TdxDBGrid上,而通过dxmdt1.FieldByName(‘字段‘).value得到当前光标所在值。通过while遍历 整个数据集中的值。如此可以在内存中先操作数据然后再用sql语句提交到数据库, 通常对一条记录都有增删改的操作,内部的操作可以这样实现:增删改按钮下只是操作内存中的数据,当真正保存按钮时才提交到数据库。方便数据的处理。
TdxMemData应用示例代码:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, DB, ADODB, dxExEdtr, dxDBTLCl, dxGrClms, dxDBCtrl,
  dxDBGrid, dxTL, dxCntner, dxmdaset, Grids, DBGrids;

type
  TForm1 = class(TForm)
    qry1: TADOQuery;
    con1: TADOConnection;
    mmo1: TMemo;
    btn1: TButton;
    dxmdt1: TdxMemData;
    dxdbgrd1: TdxDBGrid;
    ds1: TDataSource;
    intgrflddxmdt1orderid: TIntegerField;
    intgrflddxmdt1custid: TIntegerField;
    intgrflddxmdt1empid: TIntegerField;
    dtflddxmdt1orderdate: TDateField;
    strngflddxmdt1shipaddress: TStringField;
    dxdbgrdclmndxdbgrd1RecId: TdxDBGridColumn;
    dxdbgrdmskclmndxdbgrd1orderid: TdxDBGridMaskColumn;
    dxdbgrdmskclmndxdbgrd1custid: TdxDBGridMaskColumn;
    dxdbgrdmskclmndxdbgrd1empid: TdxDBGridMaskColumn;
    dxdbgrdtclmndxdbgrd1orderdate: TdxDBGridDateColumn;
    dxdbgrdmskclmndxdbgrd1shipaddress: TdxDBGridMaskColumn;
    btn2: TButton;
    dbgrd1: TDBGrid;
    btn3: TButton;
    procedure btn1Click(Sender: TObject);
    procedure btn2Click(Sender: TObject);
    procedure btn3Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation
{$R *.dfm}

procedure TForm1.btn1Click(Sender: TObject);
var
  i:Integer;
begin
  i:=1;
  qry1.Connection:=con1;
  qry1.SQL.Clear;
  qry1.SQL.Add(‘select top 12 orderid,custid,empid,orderdate,shipaddress from TSQLFundamentals2008.sales.Orders‘);
  qry1.Open;
  qry1.First;
  while not qry1.Eof do
  begin
    dxmdt1.Append; //从数据为读取值添加到内存中
    dxmdt1.FieldByName(‘RecId‘).AsInteger:=(i+1);
    dxmdt1.FieldByName(‘orderid‘).AsInteger:=StrToInt(qry1.FieldByName(‘orderid‘).asstring);
    dxmdt1.FieldByName(‘custid‘).AsInteger:=StrToInt(qry1.FieldByName(‘custid‘).asstring);
    dxmdt1.FieldByName(‘empid‘).AsInteger:=StrToInt(qry1.FieldByName(‘empid‘).asstring);
    dxmdt1.FieldByName(‘orderdate‘).AsDateTime:= StrToDate(qry1.FieldByName(‘orderdate‘).asstring);
    dxmdt1.FieldByName(‘shipaddress‘).AsString:=qry1.FieldByName(‘shipaddress‘).asstring;
    mmo1.Lines.Add(qry1.FieldByName(‘orderdate‘).AsString)   ;
    qry1.Next;
    inc(i);
  end;
  qry1.Close;
end;

procedure TForm1.btn2Click(Sender: TObject);
begin
  dxmdt1.First;
  while not dxmdt1.Eof do
  begin
    if (dxmdt1.FieldByName(‘orderid‘).AsInteger=10249) or (dxmdt1.FieldByName(‘orderid‘).AsInteger=10250) then
    begin
     dxmdt1.Edit;      //需要先设置为edit模式
     dxmdt1.FieldByName(‘shipaddress‘).AsString:=‘zheng zhou‘;
    end;
    dxmdt1.Next;
  end;
  dxmdt1.Edit;
  dxmdt1.Post;
  dxmdt1.First;
end;
procedure TForm1.btn3Click(Sender: TObject);
begin

end;

end.

时间: 2024-08-28 06:42:24

关于内存控件TdxMemData的编程设计思路的相关文章

关于内存控件TdxMemData的编程设计思路_学习

TdxMemData控件可以把DataSet数据库保存在内存中,并显示在TdxDBGrid上,而通过dxmdt1.FieldByName('字段').value得到当前光标所在值.通过while遍历 整个数据集中的值.如此可以在内存中先操作数据然后再用sql语句提交到数据库, 通常对一条记录都有增删改的操作,内部的操作可以这样实现:增删改按钮下只是操作内存中的数据,当真正保存按钮时才提交到数据库.方便数据的处理. TdxMemData应用示例代码: unit Unit1; interface u

Android 打造任意层级树形控件 考验你的数据结构和设计

转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/40212367,本文出自:[张鸿洋的博客] 1.概述 大家在项目中或多或少的可能会见到,偶尔有的项目需要在APP上显示个树形控件,比如展示一个机构组织,最上面是boss,然后各种部门,各种小boss,最后各种小罗罗:整体是一个树形结构:遇到这样的情况,大家可能回去百度,因为层次多嘛,可能更容易想到ExpandableListView , 因为这玩意层级比Listview多,但是E

Android 打造随意层级树形控件 考验你的数据结构和设计

转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/40212367,本文出自:[张鸿洋的博客] 1.概述 大家在项目中或多或少的可能会见到,偶尔有的项目须要在APP上显示个树形控件,比方展示一个机构组织,最上面是boss.然后各种部门.各种小boss,最后各种小罗罗.总体是一个树形结构.遇到这种情况,大家可能回去百度.由于层次多嘛,可能更easy想到ExpandableListView , 由于这玩意层级比Listview多.可是

Android 打造任意层级树形控件 考验你的数据结构和设计

转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/40212367,本文出自:[张鸿洋的博客] 1.概述 大家在项目中或多或少的可能会见到,偶尔有的项目需要在APP上显示个树形控件,比如展示一个机构组织,最上面是boss,然后各种部门,各种小boss,最后各种小罗罗:整体是一个树形结构:遇到这样的情况,大家可能回去百度,因为层次多嘛,可能更容易想到ExpandableListView , 因为这玩意层级比Listview多,但是E

JavaScript取消默认控件并添加新控件(DOM编程艺术第11章)

这一章实现的这个功能我研究了好久,这个思路我感觉已经是现在的我要膜拜的了,我感觉我的逻辑还是有些问题. 第一个问题:vid.height与vid.videoHeight vid.height = vid.videoHeight; vid.weight = vid.videoWidth;//移除边框-配合实现无边框效果 vid.parentNode.style.height = vid.videoHeight + "px"; //将vid的父元素(那个div)也贴合vid // vide

[转]如何动态加载控件以及插件编程思想(C#) Zd0

Yann LeCun其人,Facebook AI研究院(FAIR)负责人,深度学习三架马车之一,卷积神经网络(CNN)之父,享受得了万人敬仰,也在无人问津的寒冬挣扎过. 他于1960年出生在巴黎,1987-1989年博士后期间拜在大神Geoffrey Hinton门下,1988年被Larry Jackel招入贝尔实验室,1989年提出在计算机视觉中使用卷积神经网络,其后此项技术被用于在自动取款机上读取支票,影响至今.1998年又提出基于梯度的学习. 或许是天性,又或许是经历过神经网络和深度学习备

iOS开发一款小巧简洁的日历控件

iOS开发一款小巧简洁的日历控件 一.引言 日 历是iOS开发中有时会用到的一个UI控件,网上开源的代码也很多,我浏览过一些,大致有两种模式,一种是日历的逻辑由开发者自己实现,通过计算闰年与平 年来确定月份天数,另外一种模式是通过NSDate这个时间类,来获取日历的信息.我个人认为后一种更加安全,代码性能也会更加优质,下面就是我用这种模 式实现的一个日历控件. 二.设计思路 1.先来看下效果吧                    2.我们需要实现的功能 (1)每行7天,对应星期,列数为将当前月

C#控件及常用设计整

C#控件及常用设计整 1.窗体????1 2.Label 控件????3 3.TextBox 控件????4 4.RichTextBox控件????5 5.NumericUpDown 控件????7 6.Button 控件????7 7.GroupBox 控件????7 8.RadioButton控件????8 9.CheckBox 控件????8 10.ListBox 控件????9 11.ComboBox 控件????10 12.CheckedListBox 控件????10 13.Pict

C#控件及常用设计整理

1.窗体 1.常用属性 (1)Name属性:用来获取或设置窗体的名称,在应用程序中可通过Name属性来引用窗体. (2)WindowState属性:用来获取或设置窗体的窗口状态. 取值有三种: Normal (窗体正常显示). Minimized(窗体以最小化形式显示)和 Maximized(窗体以最大化形式显示). (3)StartPosition属性:用来获取或设置运行时窗体的起始位置.(4)Text属性:该属性是一个字符串属性,用来设置或返回在窗口标题栏中显示的文字. (5)Width属性