0

Visual C++ と Microsoft SQL Server 2008R2 に問題があります。

次のコードがハングすることがあります。

  Object->Update();

  if(Object->CanRestart())
  {
     //Why does this not return??
     m_pDBRoRBaseObject->Requery();
  }

Objectから導出されCRecordsetます。::SQLExecute(m_hstmt)メソッド内のへの呼び出しがハングしているように見えますが、Requery()(とにかく現在のスキル セットでは) これを回避する方法がわかりません。

誰かが同様の問題、または何らかの洞察を持っていますか?

4

2 に答える 2

0

共有メモリの問題がありました...適切に通知されたイベントオブジェクトで修正されました。そしてカラスの湯気の助っ人。美味しい!

于 2012-09-18T19:30:31.113 に答える
0

Requery (少なくとも特定のデータベース ドライバーを使用) は、既に収集した行の PK を使用して、クエリを 1 つの大きな IN ステートメントとして再構築することを (ずっと前から) 覚えているようです。もちろん、セットアップ、メトリック、データなどによっては、これは非効率的かもしれません。

SQL プロファイラーを起動して、Requery() ステートメントが正確に何を生成しているかを確認する価値があります。

于 2012-09-18T12:00:56.587 に答える