問題は手続きの呼び出しにあると思います。
OUT
をサポートしないバージョンのMySQLコネクタを使用 パラメータの場合、通常の回避策は、MySQLユーザー変数を使用して戻り値を保持し、クエリを実行してそれらの変数の値を取得することです。
まず、ストアドプロシージャを実行し、MySQLにOUT引数の値を変数に入れさせます。
CALL `Get_Next_Processing_Video`(@IDVideo, @YoutubeIDVideo);
これらの変数はコマンドパラメータではないことに注意してください。これらは、MySQLセッションで保持される変数です。これらの変数の値を取得するには、同じMySQL接続を使用して、プロシージャを呼び出した直後に:
SELECT @IDVideo, @YoutubeIDVideo ;
そして、1行を返すと予想される他のSELECTステートメントと同じように、そのクエリの結果セットを処理します。
更新:
OUTパラメータをサポートするMySQLコネクタの最新バージョンでは、メンバー属性を設定して、これらのパラメータがOUTパラメータであることを指定する必要があると思います。
cmd.Parameters["out_IDVideo"].Direction = ParameterDirection.Output;
cmd.Parameters["out_YoutubeIDVideo"].Direction = ParameterDirection.Output;
前に示したように...
OUTパラメータをサポートしていなかった古いバージョンのMySQLコネクタでは、回避策は、MySQL変数を引数として使用してプロシージャを呼び出すことでした。プロシージャ呼び出しから返された値は、MySQLセッションで保持されます。プロシージャを呼び出した直後に、SELECTを実行してユーザー変数の内容を取得します。