1

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);を使用して行われます。

  1. LocalConn := AConnection(関数内で)実際に何が起こるのですか?参照カウントが増えているか、ローカル変数に新しいコピーが割り当てられていますか?

  2. を解放するとLocalConn影響がありGlobalConnますか?

  3. 理想的には、接続文字列を取得してローカル変数に割り当てて開くよりも、コピーを作成する方が優れている(高速である)と思います...これは正しい推定ですか?

  4. これは、Delphi 7 および XE7-Xe10 とは異なる方法で処理されますか?

ありがとう

4

1 に答える 1