使用ADO Command对象调用MySql存储的函数而不是存储过程

时间:2011-07-05 14:27:52

标签: ms-access vba ado

我正在尝试从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 个答案:

答案 0 :(得分:1)

具体来说,我想知道是否有相同的'adCmdStoredProc'用于函数?

但是你正在使用的SQL是一个引用函数的SELECT:

SELECT my_function();

CommandTypeEnum 中有7个选项。 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

答案 1 :(得分:0)

您是否尝试将其作为SELECT声明运行?

SELECT *
FROM my_function()