REST CRUD
REST CRUD
rest api 支持任何语言、前后端调用。
使用APIPost工具测试。
查询
apipost查询

delphi查询
procedure TForm1.Button5Click(Sender: TObject);
//查询
begin
crud.resource := 'danwei';
crud.where := 'unitid like ''1%''';
data := crud.select;
FDMemTable1.DisableControls;
FDMemTable1.EmptyDataSet;
for var row: Tdanwei in data.rows do
FDMemTable1.AppendRecord([row.Unitid, row.Unitname]);
FDMemTable1.First;
FDMemTable1.EnableControls;
end;
新增
apipost新增

delphi新增
procedure TForm1.Button1Click(Sender: TObject); //新增 begin SetLength(data.rows, 1); data.rows[0].Unitid := '1'; data.rows[0].Unitname := '新增'; crud.resource := 'danwei'; crud.data := data; crud.insert; end;
修改
apipost修改

delphi修改
procedure TForm1.Button3Click(Sender: TObject); //修改 begin SetLength(data.rows, 1); data.rows[0].Unitid := '1'; data.rows[0].Unitname := '修改'; crud.resource := 'danwei'; crud.data := data; crud.update; end;
删除
apipost删除

delphi删除
procedure TForm1.Button7Click(Sender: TObject); //删除 begin SetLength(data.rows, 1); data.rows[0].Unitid := '1'; crud.resource := 'danwei'; crud.data := data; crud.delete; end;
主从表
以主从表查询为例
procedure TRESTdanwei.select2(const req: TRequest; const res: TResponse);
//多表查询
begin
var pool: TDBPool := GetDBPool('1');
var db: TDB := pool.Lock;
try
try
var where: string;
if req.Body <> nil then
where := TEncoding.UTF8.GetString(TBytesStream(req.Body).Bytes);
var sql: string;
if where = '' then
sql := 'select * from tunit'
else
sql := 'select * from tunit where ' + where;
db.select(sql);
var tables: TTables<Tdanwei, Tdanwei>; //2个表
SetLength(tables.table1.rows, db.qry.RecordCount);
SetLength(tables.table2.rows, db.qry.RecordCount);
var i: Integer := 0;
db.qry.First;
while not db.qry.Eof do
begin
tables.table1.rows[i].unitid := db.qry.FieldByName('unitid').AsString;
tables.table1.rows[i].unitname := db.qry.FieldByName('unitname').AsString;
tables.table2.rows[i].unitid := db.qry.FieldByName('unitid').AsString;
tables.table2.rows[i].unitname := db.qry.FieldByName('unitname').AsString;
db.qry.Next;
Inc(i);
end;
res.Send(TSerial<TTables<Tdanwei, Tdanwei>>.json(tables));
except
on E: Exception do
begin
res.Send(error(E.Message));
writelog('TRESTdanwei.select2()' + E.Message);
end;
end;
finally
pool.Unlock(db);
end;
end;

本文来自博客园,作者:{咏南中间件},转载请注明原文链接:https://www.cnblogs.com/hnxxcxg/p/17548376.html

浙公网安备 33010602011771号