SPI_push
は、それ自体がSPIを使用する可能性がある他のプロシージャを実行する前に呼び出されなければなりません。
SPI_push
の後、SPIは"接続"状態ではなくなります。
新しくSPI_connect
を実行しない限り、SPI関数の呼び出しは拒絶されます。
これにより確実にプロシージャのSPI状態と呼び出した別のプロシージャのSPI状態を明確に分離できます。
他のプロシージャから復帰した後にSPI_pop
を呼び出して、そのプロシージャのSPI状態にアクセスを戻してください。
SPI_execute
とその関連関数は、制御をSQL実行エンジンに戻す前に自動的にSPI_push
同等の処理を行うことに注意してください。
ですので、こうした関数を使用する際には気にする必要はありません。
SPI_connect
呼び出しを行う可能性がある任意のコードを直接呼び出す場合のみ、SPI_push
とSPI_pop
を呼び出さなければなりません。