スタッフブログ

むむ・・こんな少ないデータでレコードロック??

2017年02月28日  担当:城市

こんばんわ、開発課の城市です。

以前より、あるユーザー様で見積伝票の登録時にエラーが発生するという報告を頂いており、

色々調査してみたところ、サブフォームに対してリクエリをかけた際(サブフォームのレコードセットはスナップショット)、そこに含まれるレコードが、SQLServerでロックされている現象でした。

このケースでは、複数のクライアントで AのPCにてサブフォームを使用したデータ参照を行っている際、BのPCにてレコードの追加・削除ができない状態です。 参照するレコード件数が多い場合に、リクエリ処理では、途中でSQLServerからデータを取得するのを中断し、しかもまだ取得の途中ですよ というような振る舞いを行っているようです。

対処としては、サブフォームに対してリクエリを実行した後、そのサブフォームのレコードセットに対して、MoveLast/MoveFirst  を実行してやれば、ロックが解除されるようで、その処理の追加で、対処しました。

しかし・・・・

そこから1カ月後、再び同じ現象が発生。今回は たった5件のレコード参照なのに・・・

現在のところ対処方法は判っていません。 判り次第ご報告いたします。