key-value pair序列和还原
key-value pair序列和还原
不论JSON、binary、sql、 nosql数据,都可以使用key-value pair序列和还原。
1.WEBAPI
procedure TCRUD.Select(const ARequest: THttpRequest; const AResponse: THttpResponse); var LDB: TDB; LPool: TDBPool; LRequestData, LResponseData: TJsonO; i: Integer; begin LRequestData := TRequestFunc.UnMarshal(ARequest); if LRequestData = nil then Exit; LResponseData := TJsonO.Create; try try LPool := GetDBPool(LRequestData.S['dbid']); LDB := LPool.Lock; LResponseData.B['success'] := True; LResponseData.S['message'] := TConst.SelectSuccess; for i := 0 to LRequestData.i['count'] - 1 do begin LDB.Select(LRequestData.S['sql' + i.ToString]); LResponseData.A['fields' + i.ToString] := LDB.qry.FieldsToJsonArray; LResponseData.A['data' + i.ToString] := LDB.qry.DataToJsonArray; end; TResponseFunc.Send(AResponse, LResponseData); except on E: Exception do begin LResponseData.B['success'] := False; LResponseData.S['message'] := E.Message; TResponseFunc.Send(AResponse, LResponseData); WriteLog('TWebApi.Select()' + E.Message); end; end; finally LPool.Unlock(LDB); LRequestData.Free; end; end;
2.二进制接口
procedure TFDMem.Select(const ARequest: THttpRequest; const AResponse: THttpResponse); var LRequestData, LResponseData: TData; LPool: TDBPool; LDB: TDB; i: Int; LStream: TStream; begin LRequestData := TData.Create; LResponseData := TData.Create; try try TRequestFunc.UnMarshal(ARequest, LRequestData); LPool := GetDBPool(LRequestData.S[TConst.DBId]); LDB := LPool.Lock; for i := 0 to LRequestData.i[TConst.Count] do begin LStream := LDB.select3(LRequestData.S['sql' + i.ToString]); LResponseData.Stream['data' + i.ToString] := LStream; LStream.Free; end; LResponseData.B[TConst.Success] := True; TResponseFunc.Send(AResponse, LResponseData); except on E: Exception do begin LResponseData.B[TConst.Success] := False; LResponseData.S[TConst.Msg] := E.Message; TResponseFunc.Send(AResponse, LResponseData); WriteLog('TFDMem.Select()' + E.Message); end; end; finally LPool.Unlock(LDB); LRequestData.Free; end; end;
本文来自博客园,作者:{咏南中间件},转载请注明原文链接:https://www.cnblogs.com/hnxxcxg/p/19078217