使用myStoredProc调用 存储过程时,出错
 提示如下:
 
 Select Cast(@`oid` as signed ) as @`od` at aline 1
 存储过程,具体如下:
 DELIMITER ;
 
-- ----------------------------
 -- Procedure structure for `LhStartInfo`
 -- ----------------------------
 DROP PROCEDURE IF EXISTS `LhStartInfo`;
 DELIMITER ;;
 CREATE DEFINER=`root`@`%` PROCEDURE `LhStartInfo`(IN `achannel` int,IN `asdt` datetime,IN `aedt` datetime,IN `axmmc` varchar(50),IN `astate` varchar(50),IN `atm` varchar(50),OUT `oid` int)
 BEGIN
 INSERT INTO startlh(channel,sdt,edt,xmmc,state,tm) VALUES(achannel,asdt,aedt,axmmc,astate,atm);
 SET oid=LAST_INSERT_ID();
 END
 ;;
 DELIMITER ;
 表结构:
 -- Table structure for `startlh`
 -- ----------------------------
 DROP TABLE IF EXISTS `startlh`;
 CREATE TABLE `startlh` (
   `id` bigint(20) NOT NULL AUTO_INCREMENT,
   `channel` bigint(20) DEFAULT NULL,
   `sdt` datetime DEFAULT NULL,
   `edt` datetime DEFAULT NULL,
   `xmmc` varchar(50) DEFAULT NULL,
   `state` varchar(50) DEFAULT NULL,
   `tm` varchar(50) DEFAULT NULL,
   PRIMARY KEY (`id`)
 ) ENGINE=InnoDB DEFAULT CHARSET=gb2312;
 
调用代码:
 
  with aStor do
   begin
     close;
 //        s:=dateTimetoStr(self.dt);
     Params.ParamByName('`asdt`').AsDateTime:=Now;
     Params.ParamByName('`aedt`').asDateTime:=Now;//  .as.as:=s;
     Params.ParamByName('`achannel`').AsInteger:=2;
     Params.ParamByName('`axmmc`').AsString:='ab';//self.xmmc;
     Params.ParamByName('`atm`').AsString:='asdfasdfasd';
     Params.ParamByName('`astate`').AsString:='ok';  //12707
     Params.ParamByName('`oid`').AsInteger :=0;
     Prepared:=true;            //执行到这里时出错了。
     ExecProc;
     SpinEdit1.Value :=Params.ParamByName('`oid`').AsInteger;
   end; 

解决方案 »

  1.   

    现在就是把返回值去掉。只做insert into语句,也不行。我是用delphi里的myDac组件来访问。存储过程只有这一句
     INSERT INTO startlh(channel,sdt,edt,xmmc,state,tm) VALUES(achannel,asdt,aedt,axmmc,astate,atm);
      

  2.   

    提示什么?
    用adoquery也可以调用   
       如:   
       adoquery1.close   ;   
       adoquery1.sql:=   '{call   procedurename   (vlaues)}';   
       adoquery1.open   ;