Запретить PetaPoco распознавать переменные в качестве входных параметров

Я использую PetaPoco.Core 4.0.3 в приложении С# для доступа к базе данных MySql.

Я пытаюсь создать запрос, использующий переменные, но я не хочу, чтобы PetaPoco обрабатывал их как входные параметры. Вот бесполезный запрос, чтобы показать, что я имею в виду:

SET @num := 0;

SELECT
  @num := @num + 1 AS row_number
FROM
  buzz
LIMIT 100;

Когда я это делаю, PetaPoco распознает @num как входной параметр, и я получаю следующую ошибку:

Параметр '@num' указан, но ни один из переданных аргументов не имеет свойства с этим> именем (в 'SET @num := 0; SELECT @num;')

Я также пытался избежать символа @, удвоив его.

SET @@num := 0;

SELECT
  @@num := @@num + 1 AS row_number
FROM
  buzz
LIMIT 100;

но потом я получаю

Параметр '@num' должен быть определен.

Есть ли способ объявить и использовать переменные в запросе, чтобы PetaPoco не распознала их как входные параметры?

заранее спасибо

Пауло


person peflorencio    schedule 19.04.2012    source источник
comment
Во втором примере, я думаю, вам нужно объявить переменную @@num. например. ОБЪЯВИТЬ @@num int;   -  person Schotime    schedule 20.04.2012


Ответы (1)


Я нашел решение. Проблема заключалась в настройках коннектора .NET (см. http://blog.tjitjing.com/index.php/2009/05/mysqldatamysqlclientmysqlexception-parameter-id-must-be-defined.html)

Мне пришлось изменить строку подключения, добавив свойство «Разрешить пользовательские переменные» и установив для него значение true.

База данных=db;Источник данных=localhost;Идентификатор пользователя=root;Пароль=pass;Разрешить пользовательские переменные=True

После этого заработала вторая версия моего запроса (@@variable).

person peflorencio    schedule 20.04.2012