0

カスタム アクション内でスクリプトを実行するのに問題があります。このスクリプトは、localhost MySQL サーバーにデータベースを作成してセットアップします。

具体的には、手順の 1 つに問題があります。

DELIMITER $$
CREATE DEFINER=`root`@`localhost` PROCEDURE `UpdateAutoInc`(IN `increment` BIGINT) 
BEGIN
SET @s = concat('ALTER TABLE tblactionservices AUTO_INCREMENT ',increment);
PREPARE stmt FROM @s;
EXECUTE stmt;
SET @s = concat('ALTER TABLE tblbannedclient AUTO_INCREMENT ',increment);
PREPARE stmt FROM @s;
EXECUTE stmt;
END$$
DELIMITER ;

スクリプトでは、この手順の前に、完全に実行される 2 つの手順があります。

アプリケーションをインストールすると、「パラメーター '@s' を定義する必要があります」というエラーが表示されます。インターネットを探していると、このブログを見つけましたが、「Allow User Variables=True;」を追加しました。運がない。このテキストでは、スクリプトは最初の手順で直接クラッシュします。実際、何を見つけても (プロシージャ、テーブルなど)、常にクラッシュします。「SQL 構文にエラーがあります。マニュアルの bla bla を確認してください」というエラーはまったく役に立たないため、問題を見つけることができません。

これは、c# からスクリプトを実行するために使用しているクラスです。

private void ExecuteSql(string DatabaseName, string Sql)
        {
        MySqlConnection connection = new MySqlConnection { ConnectionString = "server=127.0.0.1;User Id=root" };
        MySqlCommand command = new MySqlCommand(Sql, connection);

        command.Connection.Close();
        command.Connection.Open();

        try
        {
            command.ExecuteNonQuery();

        }
        finally
        {
            // Closing the connection should be done in a Finally block
            command.Connection.Close();
        }
    }

スクリプトは手動で入力されたものではなく、PhPMyAdmin から自動的に生成されたものです。MySQL サーバーのバージョンは 5.5 で、コネクタのバージョンは 6.5.5.0 です。

4

0 に答える 0