´ñ±Û : 1 °³
Çѱ¹ µ¨ÆÄÀÌ µ¿È£È¸ µ¨¸¶´ç
ª±½
(±èÁø±¹)
 
ÇØ°áÇÏ¿´½À´Ï´Ù~
if not Assigned(smc) then smc := TServerMethodsClient.Create(DBXConnection,False); 
µÎ¹ø° ÆĶó¹ÌÅͷΠFInstanceOwner ¸¦ ÁöÁ¤ÇÒ ¼ö Àֳ׿ä

function TServerMethodsClient.smfunc_GetDataObject(TableName: string; EqualFieldNames: string; EqualFieldValues: OleVariant; UnEqualFieldNames: string; UnEqualFieldValues: OleVariant): TObject;
begin
  if Fsmfunc_GetDataObjectCommand = nil then
  begin
    Fsmfunc_GetDataObjectCommand := FDBXConnection.CreateCommand;
    Fsmfunc_GetDataObjectCommand.CommandType := TDBXCommandTypes.DSServerMethod;
    Fsmfunc_GetDataObjectCommand.Text := 'TServerMethods.smfunc_GetDataObject';
    Fsmfunc_GetDataObjectCommand.Prepare;
  end;
  Fsmfunc_GetDataObjectCommand.Parameters[0].Value.SetWideString(TableName);
  Fsmfunc_GetDataObjectCommand.Parameters[1].Value.SetWideString(EqualFieldNames);
  Fsmfunc_GetDataObjectCommand.Parameters[2].Value.AsVariant := EqualFieldValues;
  Fsmfunc_GetDataObjectCommand.Parameters[3].Value.SetWideString(UnEqualFieldNames);
  Fsmfunc_GetDataObjectCommand.Parameters[4].Value.AsVariant := UnEqualFieldValues;
  Fsmfunc_GetDataObjectCommand.ExecuteUpdate;
  if not Fsmfunc_GetDataObjectCommand.Parameters[5].Value.IsNull then
  begin
    FUnMarshal := TDBXClientCommand(Fsmfunc_GetDataObjectCommand.Parameters[5].ConnectionHandler).GetJSONUnMarshaler;
    try
      Result := TObject(FUnMarshal.UnMarshal(Fsmfunc_GetDataObjectCommand.Parameters[5].Value.GetJSONValue(True)));
      if FInstanceOwner then<--- ¿©±â°¡ ¹®Á¦¿´´ø°ÅÀÓ ^^
        Fsmfunc_GetDataObjectCommand.FreeOnExecute(Result);
    finally
      FreeAndNil(FUnMarshal)
    end
  end
  else
    Result := nil;
end; 
2018-04-19 ¿ÀÈÄ 3:56:25