Вызов хранимой функции MySql, а не хранимой процедуры с объектом ADO Command - PullRequest
2 голосов
/ 05 июля 2011

Я пытаюсь вызвать хранимую функцию, как это из VBA в доступе:

SELECT my_function();

Если бы это была хранимая процедура, это было бы так:

CALL my_procedure();

Дляхранимую процедуру, которую я могу использовать:

Dim cmd As Object
Set cmd = CreateObject("ADODB.Command")

With cmd
    Set .ActiveConnection = oConn 'ADODB connection created elsewhere
    .CommandType = adCmdStoredProc
    .CommandText = "my_procedure"
End With

cmd.execute

В частности, я хотел бы знать, есть ли эквивалент функции 'adCmdStoredProc' для функций?

Ответы [ 2 ]

1 голос
/ 05 июля 2011

" В частности, я хотел бы знать, есть ли эквивалентный adCmdStoredProc для функций? "

Но используемый вами SQL - это SELECT, который ссылается на функцию:

SELECT my_function();

У вас есть 7 вариантов из CommandTypeEnum . adCmdUnspecified должно работать;вероятно adCmdUnknown тоже.Я бы использовал adCmdText , но это не совсем "эквивалент" adCmdStoredProc для функции.

CommandTypeEnum Constants
Constant         Value  Description
adCmdFile        256    Evaluate as a previously persisted file
adCmdStoredProc    4    Evaluate as a stored procedure
adCmdTable         2    Have the provider generate a SQL query and return all rows from the specified table
adCmdTableDirect 512    Return all rows from the specified table
adCmdText          1    Evaluate as a textual definition
adCmdUnknown       8    The type of the CommandText parameter is unknown
adCmdUnspecified  -1    Default, does not specify how to evaluate
0 голосов
/ 05 июля 2011

Вы пытались запустить его как оператор SELECT?

SELECT *
FROM my_function()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...