小编Edu*_*aia的帖子

如何重用计算列,避免重复sql语句?

我有很多计算列,他们不断重复自己,一个在其他内部,包括嵌套的case语句.

有一个非常简化的版本,我正在寻找一种方法.

SELECT 
    (1+2) AS A, 
    A + 3 AS B, 
    B * 7 AS C 
FROM MYTABLE
Run Code Online (Sandbox Code Playgroud)

提前致谢.

t-sql sql-server

29
推荐指数
3
解决办法
1万
查看次数

这是控制对象场类型生命周期的最佳方法吗?

TMyClass = class(TObject)
private
  FMyObject: TObject;
  function GetMyObject: TObject;
public
  property MyObject: TObject read GetMyObject write FMyObject;
end;

function TMyClass.GetMyObject: TObject;
begin
  if FMyObject = nil then
    FMyObject := TObject.Create;

  Result := FMyObject;
end;
Run Code Online (Sandbox Code Playgroud)

有时,"MyObject"不是在内部创建的,而是在外部创建并分配给参数.如果在外部创建此对象,则无法在此上下文中释放它.

我应该创建一个TList并添加内部创建的所有对象并销毁析构函数上的所有内容吗?

如果参数是在内部创建的,那么如何控制参数的生命周期?你建议做什么?有没有任何模式可以做到这一点?

delphi oop

5
推荐指数
2
解决办法
213
查看次数

如何免费嵌套(对象类型)字段类?

TBaseClass = class
public
  destructor Destroy; override;
end;

TFirstClass = class(TBaseClass)
  FMyProp: string;
end;

TSecondClass = class(TBaseClass)
  FMyFirstClass: TFirstClass;
end;
Run Code Online (Sandbox Code Playgroud)

我需要实现一个DESTRUCTOR,它能够从同一个基类中找到所有(对象类型)字段并给它一个Free来避免所有这些内存泄漏.

为什么?因为FMyFirstClass可以创建或不创建,这取决于我的应用程序的流程,我无法保证何时将其创建为Free it,既不想用NIL检查所有析构函数来检查代码,因为我有一个很多像这样的领域.

我正在尝试使用新的RTTI来获取基于TBaseClass的所有字段,但我无法获得对象字段的实例,而且我没有想法.

我会走正路吗?你建议做什么?

delphi oop rtti

2
推荐指数
1
解决办法
943
查看次数

标签 统计

delphi ×2

oop ×2

rtti ×1

sql-server ×1

t-sql ×1