Delphi が割り当てを処理する方法を理解しようとしています。GlobalConn
( )というグローバル接続がありTADoConnection
ます...
渡された変数を使用してデータベース呼び出しを行う関数があります。
function MakeDBCall( AConnection : TAdoConnection )
var LocalConn : TAdoConn;
begin
LocalConn := TAdoConnection.Create(nil);
try
LocalConn := AConnection
///create the table and perform action using the LocalConn
finally
LocalConn.free;
end;
end;
呼び出しはMakeDbCall
( GlobalConn
);を使用して行われます。
LocalConn := AConnection
(関数内で)実際に何が起こるのですか?参照カウントが増えているか、ローカル変数に新しいコピーが割り当てられていますか?を解放すると
LocalConn
影響がありGlobalConn
ますか?理想的には、接続文字列を取得してローカル変数に割り当てて開くよりも、コピーを作成する方が優れている(高速である)と思います...これは正しい推定ですか?
これは、Delphi 7 および XE7-Xe10 とは異なる方法で処理されますか?
ありがとう