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