FDMemTable的详细使用方法
unit Unit1;
interface
uses
System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants,
FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs, Data.DB, Data.SqlExpr,
FMX.Controls.Presentation, FMX.StdCtrls, FMX.Edit, System.Rtti, FMX.Layouts,
FMX.Grid, Data.Bind.EngExt, Fmx.Bind.DBEngExt, Fmx.Bind.Grid, System.Bindings.Outputs,
Fmx.Bind.Editors, Data.Bind.Components, Data.Bind.Grid, Data.Bind.DBScope,
IPPeerClient, Data.DBXDataSnap, Data.DBXCommon, FMX.Grid.Style, FMX.ScrollBox,
FireDAC.Stan.Intf, FireDAC.Stan.Option, FireDAC.Stan.Param, FireDAC.Stan.Error,
FireDAC.DatS, FireDAC.Phys.Intf, FireDAC.DApt.Intf, FireDAC.Comp.DataSet,
FireDAC.Comp.Client, FireDAC.Stan.StorageJSON, FireDAC.Stan.StorageXML,
FireDAC.Stan.StorageBin, Data.FireDACJSONReflect;
type
TForm1 = class(TForm)
SQLConnection1: TSQLConnection;
GroupBox1: TGroupBox;
Label1: TLabel;
edtIP: TEdit;
Label2: TLabel;
edtPort: TEdit;
btnConnect: TButton;
StringGrid1: TStringGrid;
btnQuery: TButton;
btnSave: TButton;
FDMemTable1: TFDMemTable;
FDMemTable1c1: TStringField;
FDMemTable1c2: TStringField;
BindSourceDB1: TBindSourceDB;
BindingsList1: TBindingsList;
LinkGridToDataSourceBindSourceDB1: TLinkGridToDataSource;
btnStoredProcedure: TButton;
procedure FormDestroy(Sender: TObject);
procedure btnConnectClick(Sender: TObject);
procedure btnQueryClick(Sender: TObject);
procedure btnSaveClick(Sender: TObject);
procedure btnStoredProcedureClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.fmx}
{$R *.LgXhdpiPh.fmx ANDROID}
uses
Unit3;
var
svrMethods: TServerMethods1Client;
procedure TForm1.btnConnectClick(Sender: TObject);
begin
with SQLConnection1 do
begin
Params.Values['HostName'] := edtIP.Text;
Params.Values['Port'] := edtPort.Text;
Connected := True;
end;
if SQLConnection1.Connected then
svrMethods := TServerMethods1Client.Create(SQLConnection1.DBXConnection)
else
ShowMessage('连接中间件失败');
end;
procedure TForm1.btnQueryClick(Sender: TObject);
var
LDataSets: TFDJSONDataSets;
LDataSet: TFDDataSet;
begin
LDataSets := svrMethods.QuerySql2('0', 'select * from t1');
LDataSet := TFDJSONDataSetsReader.GetListValueByName(LDataSets, '1');
FDMemTable1.Close;
FDMemTable1.Data := LDataSet;
end;
procedure TForm1.btnSaveClick(Sender: TObject);
var
LDeltas: TFDJSONDeltas;
begin
if FDMemTable1.State in dsEditModes then
FDMemTable1.Post
else
Exit;
LDeltas := TFDJSONDeltas.Create;
TFDJSONDeltasWriter.ListAdd(LDeltas, '1', FDMemTable1);
if svrMethods.SaveData2('0', 't1', LDeltas) then
ShowMessage('save ok')
else
ShowMessage('save fail');
end;
procedure TForm1.btnStoredProcedureClick(Sender: TObject);
var
LDataSets: TFDJSONDataSets;
LDataSet: TFDDataSet;
begin
LDataSets := svrMethods.spOpen2('0', 'sp_test', '@c1:11');
LDataSet := TFDJSONDataSetsReader.GetListValueByName(LDataSets, '1');
FDMemTable1.Close;
FDMemTable1.Data := LDataSet;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
FDMemTable1.CachedUpdates := True;
end;
procedure TForm1.FormDestroy(Sender: TObject);
begin
svrMethods.Free;
end;
end.
最新文章
- TSQL 数据类型转换
- 应用程序框架实战三十:表现层及ASP.NET MVC介绍(一)
- 原创:从零开始,微信小程序新手入门宝典《一》
- WPF学习之路(三) 属性与依赖
- iOS - Mac Apache WebServer 服务器配置
- LeetCode 176 Second Highest Salary mysql,select 嵌套 难度:1
- BZOJ SCOI2005骑士精神
- [c++]堆和栈的区别
- 字符串匹配算法之Sunday算法
- prob5 of 140
- .net core mysql ef
- 错误	CS0006	Metadata file 'E:\项目名称\xxxx.dll'
- 菜鸟入门【ASP.NET Core】6:配置的热更新、配置的框架设计
- [k8s]zookeeper集群在k8s的搭建(statefulset模式)-pod的调度
- python笔记7-if中的is ;in ;not搭配用法
- BZOJ2460 Beijing2011元素(线性基+贪心)
- java php c# 三种语言的AES加密互转
- wamp集成多个版本php (php7.0)
- HTML <;area>; 标签区域map标签
- Echarts图表横坐标显示不全