本文整理自网络,侵删。
unit Umemtable;
interface
usesSystem.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants,FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs, System.Rtti,FMX.Layouts, FMX.Grid, FireDAC.Stan.Intf, FireDAC.Stan.Option, FireDAC.Stan.Param,FireDAC.Stan.Error, FireDAC.DatS, FireDAC.Phys.Intf, FireDAC.DApt.Intf, Data.DB,FireDAC.Comp.DataSet, FireDAC.Comp.Client, FMX.Controls.Presentation, FMX.StdCtrls,Data.Bind.EngExt, Fmx.Bind.DBEngExt, Fmx.Bind.Grid, System.Bindings.Outputs,Fmx.Bind.Editors, Data.Bind.Components, Data.Bind.Grid, Data.Bind.DBScope, FMX.Edit;
typeTForm1 = class(TForm)Button1: TButton;FDMemTable1: TFDMemTable;DataSource1: TDataSource;Grid1: TGrid;bndsrcdb1: TBindSourceDB;bndngslst1: TBindingsList;lnkgrdtdtsrcBindSourceDB: TLinkGridToDataSource;Button2: TButton;Button3: TButton;Button4: TButton;Edit1: TEdit;Edit2: TEdit;Edit3: TEdit;lbl1: TLabel;Label1: TLabel;Label2: TLabel;Button5: TButton;Button6: TButton;Button7: TButton;Button8: TButton;Button9: TButton;Button10: TButton;Button11: TButton;Button12: TButton;Button13: TButton;Button14: TButton;Button15: TButton;Button16: TButton;Button17: TButton;procedure Button1Click(Sender: TObject);procedure Button2Click(Sender: TObject);procedure Button5Click(Sender: TObject);procedure Button6Click(Sender: TObject);procedure Button8Click(Sender: TObject);procedure Button7Click(Sender: TObject);procedure Button9Click(Sender: TObject);procedure Button10Click(Sender: TObject);procedure Button11Click(Sender: TObject);procedure Button12Click(Sender: TObject);procedure Button13Click(Sender: TObject);procedure Button14Click(Sender: TObject);procedure Button15Click(Sender: TObject);procedure Button16Click(Sender: TObject);procedure Button17Click(Sender: TObject);private
{ Private declarations }public{ Public declarations }end;
varForm1: TForm1;Id: Integer;
implementation
{$R *.fmx}
procedure TForm1.Button10Click(Sender: TObject);begin//清空FDMemTable1.EmptyView;end;
procedure TForm1.Button11Click(Sender: TObject);varFRow, FRow2: TFDDatSRow;beginFRow := FDMemTable1.Table.Rows.Add([1, 'Hello', '2015-09-15']);FRow2 := FDMemTable1.Table.NewRow();FRow2.SetValues([2, 'Hello2', '2015-09-15']);FDMemTable1.Table.Rows.Add(FRow2);//以下方法2条记示增加成功FDMemTable1.CachedUpdates;FDMemTable1.CommitUpdates;// FDMemTable1.ApplyUpdates;// FDMemTable1.CommitUpdates;end;
procedure TForm1.Button12Click(Sender: TObject);beginFDMemTable1.Filter := 'Value = ' + QuotedStr('Hello');FDMemTable1.Filtered := True;end;
procedure TForm1.Button13Click(Sender: TObject);begin//FDMemTable1.Filter := 'Value = ''Hello''';FDMemTable1.Filter := 'Value = ''Hel*''';//foCaseInsensitive时,“Filter”属性中的条件字符串文字与字段值进行比较时,不区分大小写。//foNoPartialCompare强制Delphi将星号(*)解释为原义字符而非通配符。默认情况下,//FilterOptions设置为空集FDMemTable1.FilterOptions := [foCaseInsensitive];FDMemTable1.Filtered := True;
end;
procedure TForm1.Button14Click(Sender: TObject);beginFDMemTable1.Filter := 'Value Like ''Hel%''';FDMemTable1.Filtered := True;
end;
procedure TForm1.Button15Click(Sender: TObject);beginFDMemTable1.Filter := 'Id<10 and Value Like ''He%''';FDMemTable1.Filtered := True;
end;
procedure TForm1.Button16Click(Sender: TObject);varFConnIntf: IFDPhysConnection;FCommIntf: IFDPhysCommand;oMechFilter: TFDDatSMechFilter;FDataView: TFDDatSView;begin
FDataView := FDMemTable1.Table.DefaultView;FDataView.Sort := 'Id ASC';//FDataView.Mechanisms.AddSort('Id DESC;Value ASC');//FDMemTable1.View.Mechanisms.AddSort('Id');FDataView.Mechanisms.Clear;
// FDMemTable1.View.Sort:=' Id DESC;'//FDMemTable1.View.SortingMechanism;// 4) filtering// oMechFilter := TFDDatSMechFilter.Create('id > 3');// FDMemTable1.View.Mechanisms.Add(oMechFilter);
// FDefaultView.Mechanisms.Clear;// // 5) too// FDMemTable1.View.Mechanisms.AddFilter('Id DESC');// FDefaultView.Mechanisms.Clear;// FDefaultView.Mechanisms.Clear;// // 5) too// FDefaultView.Mechanisms.AddFilter('id > 5');// FDefaultView.Mechanisms.Clear;
end;
procedure TForm1.Button17Click(Sender: TObject);varoMech: TFDDatSMechFilter;i: Integer;FDataView: TFDDatSView;beginFDataView := FDMemTable1.Table.DefaultView;// Locate row using locating mechanismoMech := TFDDatSMechFilter.Create('Id=5');oMech.Locator := True;FDataView.Mechanisms.Add(oMech);FDataView.Locate(i, True, True);if i <> -1 thenbeginShowMessage('找到 删除');//FDataView.de;endelsebeginShowMessage('NO');end;FDataView.Mechanisms.Clear;end;
procedure TForm1.Button1Click(Sender: TObject);vari: Integer;beginif FDMemTable1.Active thenFDMemTable1.Close;with FDMemTable1.FieldDefs dobeginClear;Add('Id', ftInteger, 0, False);Add('Value', FtString, 20, False);Add('Time', ftDateTime, 0, False);end;with FDMemTable1.IndexDefs dobeginClear;// Add('Index1', 'Id', []); //定义索引 正序Add('Index1', 'Id', [ixDescending]); //定义索引 倒序end;FDMemTable1.CreateDataSet;for i := 1 to 15 dobeginFDMemTable1.AppendRecord([i, 'ID' + IntTOSTR(i), Now()]);end;
end;
procedure TForm1.Button2Click(Sender: TObject);beginFDMemTable1.AppendRecord([StrToInt(Edit1.Text), Edit2.Text, StrToDate(Edit3.Text)]);end;
procedure TForm1.Button5Click(Sender: TObject);varfld_Id: TIntegerField;fld_Value: TStringField;fld_Time: TDateTimeField;i: Integer;begin//插入with FDMemTable1 dobeginDisableControls; //切断数据感知控件tryOpen; //打开//定义Fieldfld_Id := TIntegerField(FieldByName('Id'));fld_Value := TStringField(FieldByName('Value'));fld_Time := TDateTimeField(FieldByName('Time'));for i := 0 to 9 dobeginInc(Id);Append; //附加数据//赋值fld_Id.AsInteger := Id;fld_Value.AsString := 'Hello PFeng!' + inttostr(Id);fld_Time.AsDateTime := Now;Post; //确定end;//UpdateIndexes;//更新索引finallyEnableControls; //连接数据感知控件end;end;end;
procedure TForm1.Button6Click(Sender: TObject);varfld_Id: TIntegerField;fld_Value: TStringField;fld_Time: TDateTimeField;begin//更新with FDMemTable1 dobeginOpen;fld_Id := TIntegerField(FieldByName('Id'));fld_Value := TStringField(FieldByName('Value'));fld_Time := TDateTimeField(FieldByName('Time'));if Locate('Id', 5, []) thenbeginEdit;fld_Value.AsString := '内容被修改';fld_Time.AsDateTime := Now;Post;end;end;end;
procedure TForm1.Button7Click(Sender: TObject);varfld_Id: TIntegerField;fld_Value: TStringField;fld_Time: TDateTimeField;begin//删除with FDMemTable1 dobeginOpen;fld_Id := TIntegerField(FieldByName('Id'));fld_Value := TStringField(FieldByName('Value'));fld_Time := TDateTimeField(FieldByName('Time'));if Locate('Id', 5, []) thenbeginDelete;//UpdateIndexes;end;end;end;
procedure TForm1.Button8Click(Sender: TObject);varfld_Id: TIntegerField;fld_Value: TStringField;fld_Time: TDateTimeField;begin//查询with FDMemTable1 dobeginOpen;fld_Id := TIntegerField(FieldByName('Id'));fld_Value := TStringField(FieldByName('Value'));fld_Time := TDateTimeField(FieldByName('Time'));if Locate('Id', 5, []) thenShowMessage(fld_Value.AsString);//还可以用FindKey实现,结合索引速度更快// kbmMemTable1.IndexFieldNames:='Id';// if kbmMemtable1.FindKey([5]) then ...end;end;
procedure TForm1.Button9Click(Sender: TObject);varfld_Id: TIntegerField;fld_Value: TStringField;fld_Time: TDateTimeField;id: Integer;begin//循环比较最小值with FDMemTable1 dobeginOpen;fld_Id := TIntegerField(FieldByName('Id'));fld_Value := TStringField(FieldByName('Value'));fld_Time := TDateTimeField(FieldByName('Time'));DisableControls;tryFirst;id := fld_Id.AsInteger;while not Eof dobeginif id > fld_Id.AsInteger thenid := fld_Id.AsInteger;Next;end;Locate('Id', id, []);finallyEnableControls;end;end;end;
end.
来源:https://www.cnblogs.com/hnxxcxg/p/5366443.html
相关阅读 >>
Delphi下cpu getcpuid实现(x86和x64)
更多相关阅读请进入《Delphi》频道 >>