2 返信 最新の回答 日時: Jan 27, 2010 6:58 PM ユーザー:itahara_ps

    コネクションの制御

    itahara_ps

      タイトル

      コネクションの制御

      フォーラムに投稿

      こんにちは。ピースと申します。

       

      現在、FM Pro 10 + MySQL 5.1で開発を行っています。

       

      データの更新をFMの自動保存を使わずに、SQL実行スクリプトステップで実装しています。

      確認メッセージを出してから、更新処理を行うために、自動保存を使用していません。

       

      スクリプトステップの実行後とにコネクションが張られてしまうため、トランザクション制御ができません。

      ※MySQLのオートコミット機能をオフにしてコネクションを張ります。

       

      【質問】

      1. トランザクション制御を行うにはどのようにしたらよいでしょうか?
      2. FMではMySQLのトランザクション制御はできないのでしょうか?

       

      ご教示お願いします。

       

      【開発環境】

      OS: Win XP SP3

      FM: FMP 10/FMP 10 Ad

      DB: MySQL 5.1

        • 1. Re: コネクションの制御
          YK1
            
          START TRANSACTION;
          〜更新処理〜
          COMMIT;
           
          を一回のクエリーで投げることは可能ですが、エラー時の ROLLBACK を動的に発行できないので現実的ではありません。
          MySQL 側にストアドプロシージャを作成して、それを CALL する方法は使えるかもしれません(未検証)。
          • 2. Re: コネクションの制御
            itahara_ps
              

            YK様

            返信ありがとうございます。 

             

            やはり同一のコネクションを使うことはできないのですね。


            YKさんは書きました:
            MySQL 側にストアドプロシージャを作成して、それを CALL する方法は使えるかもしれません(未検証)。

            この方法も考えました。 

            ストアドプロシージャのOUTパラメータを取得する方法がわかりませんでした。←できない?

            ストアド内でエラーが発生したことを利用者に通知する必要があるためです。

             

            ありがとうございました。