我写了一个带输出参数的MySQL 的存储过程, 在cmd 里面执行完全正确, 但是使用TMyQuery 或者 TMyStoredProc 却怎么都执行不了, 请教一下, 如何使用MyQuery 或者MyStoredProc 来执行存储过程.

解决方案 »

  1.   

    报错 :
    MySQL a variable or NEW pseudo-variable in BEFORE trigger
      

  2.   

    是不是你用mysql的关键字什么了
      

  3.   

    DROP PROCEDURE IF EXISTS `sp_GetDevices`;CREATE DEFINER = `root`@`localhost` PROCEDURE `sp_GetDevices`(INOUT dvcCount int)
    BEGIN
    select count(*) into dvcCount from Device_T;
    END;存储过程, 语句使用TMyStoredProc
    DM->MyStored->Close();
    DM->MyStored->StoredProcName = "sp_GetDevices";
    DM->MyStored->Params->Clear();
    DM->MyStored->Params->CreateParam(ftInteger, "RemoteID", ptOutput);
    DM->MyStored->Params->ParamByName("RemoteID")->AsInteger = 0;
    DM->MyStored->ExecProc();
      

  4.   

    那考虑下不用输出参数了,直接在存储过程里当作结果集返回处理就可以了:select @output_var;