2016-07-28 5 views
1

У меня есть имена хранимых процедур getStocks, которые имеют параметр. Ниже приведен код, как я хочу сделать с запросом. Возможно ли с помощью SELECT QUERY мы можем назвать процедуру?SELECT WITH CALL PROCEDURE MySQL

PS Я не использовал функции Потому что я получаю проблему загрузки, когда я применяю его в наполнении DataGridView в моем VB.Net

BEGIN 

SELECT ItemId, CatalogNumber, call getStocks(ItemId) AS quantity, 
Cost, Minimum, Maximum, TypeId, SupplierId FROM items; 

END 

ответ

0

Вы хотите использовать USER- Определенная функция (UDF): http://dev.mysql.com/doc/refman/5.7/en/create-function-udf.html. В отличие от хранимых процедур, UDF можно вызывать inline в запросе.

+0

Я не могу использовать функцию, см. Мой ** PS ** –

+0

Какая проблема с загрузкой вы получаете? Вы получаете сообщение об ошибке? Вы получаете неправильные данные? UDF - это стандартный способ решения этой проблемы - у вас может быть ошибка в вашей функции. Пожалуйста, опубликуйте его. –

+0

Вот мой другой вопрос http://stackoverflow.com/questions/38631426/select-with-mysql-stored-function-in-vb-net?noredirect1_comment64659782_38631426 –

1

Вы не можете это сделать. CALL - это собственное заявление о том, что вы не можете смешивать с SELECT в любом случае. Если вы не используете UDF, вам необходимо предварительно выполнить интеграцию вручную.

Имеет смысл, что нельзя использовать такой подход, если учесть, что CALL может произвольно выводить набор результатов. Он может вернуть набор результатов, он может теперь. Он может иметь одну ячейку, одну строку, один столбец или много строк/столбцов. Столбцы не известны во время разговора, поэтому оптимизатор не может подтвердить какой-либо JOIN s ему, если вы поместили вызов в FROM и потому, что он может создавать более одной ячейки (или ничего), вы не можете надежно поместить ее в SELECT. Кроме того, хранимые процедуры могут иметь выходные переменные, что также не делает смысл в контексте оператора SELECT.

Другими словами, поскольку вывод процедур, вероятно, несовместим с любой частью запроса SELECT, создатели mysql глобально предотвращают их смешивание.

+0

Спасибо за информацию sir :) см. Мой другой вопрос, почему я пробовал эту процедуру вызова http://stackoverflow.com/questions/38631426/select-with-mysql-stored-function-in-vb-net?noredirect1_comment64659782_38631426 –

+0

извините, а не парень vb. если у вас была ошибка, то я мог бы помочь;) – CSTobey

+0

Я не знаю, почему в localhost потребовалось 2.xxx секунд, чтобы сгенерировать данные при применении в vb, это просто загрузка до выпадающего тайм-аута –