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を呼び出さなければなりません。