【发布时间】:2012-01-25 08:24:55
【问题描述】:
我收到来自单元 DBXCommon.pas(在 Delphi XE 中)的访问冲突。当我查看代码时,我看到如下内容(在感叹号处):
function TDBXConnectionFactory.GetConnection(const DBXContext: TDBXContext;
const ConnectionProperties: TDBXProperties): TDBXConnection;
var
ConnectionBuilder: TDBXConnectionBuilder;
DelegatePath: TDBXDelegateItem;
Connection: TDBXConnection;
CombinedProperties: TDBXProperties;
begin
//...
ConnectionBuilder := TDBXConnectionBuilder.Create;
Connection := nil;
try
//..lots of setting ConnectionBuilder properties
ConnectionBuilder.FInputPassword := CombinedProperties[TDBXPropertyNames.Password];
Connection := ConnectionBuilder.CreateConnection;
Connection.Open;
Result := Connection;
!! Connection := nil;
finally
!! Connection.Free;
ConnectionBuilder.Free;
end;
end;
但我在DBXCommon.pas 中看到更多这样的构造(首先分配 Nil,然后是 Free)。这是我不知道的一些构造,还是真的每次调用这段代码都会导致访问冲突?
【问题讨论】:
-
@user 这似乎不是骗子。