Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Argument błędu procedury przechowywanej 1 dla procedury ... nie jest zmienną ani NOWĄ pseudozmienną w funkcji PRZED wyzwalaczem

Myślę, że problem tkwi w twoim wezwaniu do procedury.

Z wersjami łącznika MySQL, które nie obsługują OUT parametrów, normalnym obejściem jest użycie zmiennych użytkownika MySQL do przechowywania wartości zwracanych, a następnie uruchomienie zapytania, aby uzyskać wartości tych zmiennych.

Najpierw wykonaj procedurę składowaną i poproś MySQL o umieszczenie wartości argumentów OUT w zmiennych:

CALL `Get_Next_Processing_Video`(@IDVideo, @YoutubeIDVideo);

Zauważ, że te zmienne nie są parametrami poleceń; są to zmienne przechowywane w sesji MySQL. Aby uzyskać wartości tych zmiennych, natychmiast po wywołaniu procedury, używając tego samego połączenia MySQL:

SELECT @IDVideo, @YoutubeIDVideo ;

I przetwórz zestaw wyników z tego zapytania tak, jak chcesz, aby każda inna instrukcja SELECT zwracała jeden wiersz.

Aktualizacja:

W nowszych wersjach MySQL Connector, które obsługują parametry OUT, myślę, że musisz określić, że te parametry są parametrami OUT, ustawiając atrybut członka:

cmd.Parameters["out_IDVideo"].Direction = ParameterDirection.Output;
cmd.Parameters["out_YoutubeIDVideo"].Direction = ParameterDirection.Output;

Jak wspomniałem wcześniej...

W starszych wersjach MySQL Connector, które nie wspierały parametrów OUT, obejściem było wywołanie procedury przy użyciu zmiennych MySQL jako argumentów. Wartości zwrócone z wywołania procedury są zachowywane w sesji MySQL. Natychmiast po wywołaniu procedury uruchomilibyśmy SELECT, aby pobrać zawartość zmiennych użytkownika.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Przekształć daty w zakres dat w MYSQL---jak radzić sobie z lukami w datach

  2. Sterownik MySQL ODBC 5.1 zwraca zły typ danych do ADODB

  3. mysql zapytanie wybierz jak z tureckimi znakami diakrytycznymi

  4. Jak wgrać obraz PHP i wstawić ścieżkę w MySQL?

  5. Nie można połączyć się z lokalnym serwerem MySQL przez gniazdo '/tmp/mysql.sock